aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Logging/Log.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-08-16 00:12:18 +0200
committerShauren <shauren.trinity@gmail.com>2015-08-16 00:12:18 +0200
commitd5cf594bfe91ff22175c6e344b23b95cdbcc8a3c (patch)
tree16214b7561290674fec8b870249423c8de431f48 /src/server/shared/Logging/Log.h
parent21e0880fbaf78abd530e0fbb941f19adf556891a (diff)
Core/Logging: Refactored appender creation to allow using logging without mysql dependency in tools (future task)
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;