Set global default level in Init()
This commit is contained in:
parent
f8c7c9c6ea
commit
3a94433f5c
1 changed files with 10 additions and 4 deletions
14
src/log.hh
14
src/log.hh
|
@ -31,7 +31,8 @@ namespace level {
|
||||||
|
|
||||||
struct Log
|
struct Log
|
||||||
{
|
{
|
||||||
static void Init(const std::string& filename);
|
static void Init(const std::string& filename,
|
||||||
|
unsigned int level = level::Info);
|
||||||
static void Close();
|
static void Close();
|
||||||
|
|
||||||
Log(const std::string& name = "root", unsigned int level = level::Info);
|
Log(const std::string& name = "root", unsigned int level = level::Info);
|
||||||
|
@ -49,6 +50,7 @@ private:
|
||||||
|
|
||||||
typedef std::map<std::string, Logger> LoggerMap;
|
typedef std::map<std::string, Logger> LoggerMap;
|
||||||
|
|
||||||
|
static unsigned int sLevel;
|
||||||
static std::ostream* sOutput;
|
static std::ostream* sOutput;
|
||||||
static LoggerMap sLoggers;
|
static LoggerMap sLoggers;
|
||||||
|
|
||||||
|
@ -72,17 +74,21 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int Log::sLevel = 0;
|
||||||
std::ostream* Log::sOutput = nullptr;
|
std::ostream* Log::sOutput = nullptr;
|
||||||
Log::LoggerMap Log::sLoggers;
|
Log::LoggerMap Log::sLoggers;
|
||||||
|
|
||||||
|
|
||||||
/* static */ void
|
/* static */ void
|
||||||
Log::Init(const std::string& filename)
|
Log::Init(const std::string& filename,
|
||||||
|
unsigned int level)
|
||||||
{
|
{
|
||||||
assert(sOutput == nullptr);
|
assert(sOutput == nullptr);
|
||||||
sOutput = new std::ofstream(filename);
|
sOutput = new std::ofstream(filename);
|
||||||
|
sLevel = level;
|
||||||
|
|
||||||
Log("root", level::Error) << "Opening log file: " << filename;
|
Log("ROOT", 1) << "Opening log file: " << filename;
|
||||||
|
Log("ROOT", 1) << "Level set to " << sLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,7 +154,7 @@ Log::GetLogger(const std::string& name)
|
||||||
* TODO: For now, output is always the same: sOutput. In the future, figure
|
* TODO: For now, output is always the same: sOutput. In the future, figure
|
||||||
* out a way to set different outputs for different streams.
|
* out a way to set different outputs for different streams.
|
||||||
*/
|
*/
|
||||||
auto pair = sLoggers.emplace(name, level::Info);
|
auto pair = sLoggers.emplace(name, sLevel);
|
||||||
return pair.first->second;
|
return pair.first->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue