aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Logging/Log.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared/Logging/Log.h')
-rw-r--r--src/server/shared/Logging/Log.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h
index ab7b2169ed2..a15bb4ad485 100644
--- a/src/server/shared/Logging/Log.h
+++ b/src/server/shared/Logging/Log.h
@@ -44,19 +44,13 @@ class Log
public:
- static Log* instance(boost::asio::io_service* ioService = nullptr)
+ static Log* instance()
{
static Log instance;
-
- if (ioService != nullptr)
- {
- instance._ioService = ioService;
- instance._strand = new boost::asio::strand(*ioService);
- }
-
return &instance;
}
+ void Initialize(boost::asio::io_service* ioService);
void LoadFromConfig();
void Close();
bool ShouldLog(std::string const& type, LogLevel level) const;
@@ -88,6 +82,18 @@ class Log
void SetRealmId(uint32 id);
+ template<class AppenderImpl>
+ void RegisterAppender()
+ {
+ using Index = typename AppenderImpl::TypeIndex;
+ auto itr = appenderFactory.find(Index::value);
+ ASSERT(itr == appenderFactory.end());
+ appenderFactory[Index::value] = &CreateAppender<AppenderImpl>;
+ }
+
+ std::string const& GetLogsDir() const { return m_logsDir; }
+ std::string const& GetLogsTimestamp() const { return m_logsTimestamp; }
+
private:
static std::string GetTimestampStr();
void write(std::unique_ptr<LogMessage>&& msg) const;
@@ -100,6 +106,7 @@ class Log
void ReadAppendersFromConfig();
void ReadLoggersFromConfig();
+ AppenderCreatorMap appenderFactory;
AppenderMap appenders;
LoggerMap loggers;
uint8 AppenderId;