diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-02-09 11:35:27 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-02-09 11:35:27 +0000 |
commit | 3897856fb7d887883f7b3c61143ce0b256c00ff8 (patch) | |
tree | 48166a1c29389eb0a68fed65d0ecd5a4165fe344 /src/logger.cpp | |
parent | 6650ab5cb5a7836569c553b4f756332be5f86beb (diff) |
Initial totally untested logger implementation that does nothing.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8856 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/logger.cpp')
-rw-r--r-- | src/logger.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/logger.cpp b/src/logger.cpp index 690c1a5d9..458dcf5e0 100644 --- a/src/logger.cpp +++ b/src/logger.cpp @@ -41,3 +41,69 @@ * can we accomplish this easily? I guess with a map of pre-loved logpaths, and a pointer of FILE *.. * */ + +bool LogManager::AddLogType(const std::string &type, LogStream *l) +{ + std::map<std::string, std::vector<LogStream *> >::iterator i = LogStreams.find(type); + + if (i != LogStreams.end()) + i->second.push_back(l); + else + { + std::vector<LogStream *> v; + v.push_back(l); + LogStreams[type] = v; + } + + return true; +} + +bool LogManager::DelLogType(const std::string &type, LogStream *l) +{ + std::map<std::string, std::vector<LogStream *> >::iterator i = LogStreams.find(type); + + if (i != LogStreams.end()) + { + std::vector<LogStream *>::iterator it = i->second.begin(); + + while (it != i->second.end()) + { + if (*it == l) + { + i->second.erase(it); + + if (i->second.size() == 0) + { + LogStreams.erase(i); + } + + delete l; + return true; + } + } + } + + return false; +} + +void LogManager::Log(const std::string &type, int loglevel, const std::string &msg) +{ + std::map<std::string, std::vector<LogStream *> >::iterator i = LogStreams.find(type); + + if (i != LogStreams.end()) + { + std::vector<LogStream *>::iterator it = i->second.begin(); + + while (it != i->second.end()) + { + (*it)->OnLog(loglevel, msg); + } + + return; + } + + // blurp, no handler for this type + return; +} + + |