summaryrefslogtreecommitdiff
path: root/src/logger.cpp
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-02-09 12:41:17 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-02-09 12:41:17 +0000
commitaf7e1a1ca8b36064593becf62b1a91468ad32237 (patch)
tree6d2bdd3f4522c7bff69306fb6d3aa2f488e38d9c /src/logger.cpp
parentdb1c78986c8055f59b9bdf98a883dfbf3f4db6b9 (diff)
New logging implementation. Also write messages about InspIRCd::Log() being deprecated. Any takers on changing it all to use the new system? :P. STILL TODO: create <log> blocks in config, add a method called to 'cleanup' (or use destructor) of logstreams, add a method to logmanager to initiate destruction of all logstreams.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8858 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/logger.cpp')
-rw-r--r--src/logger.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/logger.cpp b/src/logger.cpp
index 458dcf5e0..83a657216 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -55,12 +55,25 @@ bool LogManager::AddLogType(const std::string &type, LogStream *l)
LogStreams[type] = v;
}
+ if (type == "*")
+ GlobalLogStreams.push_back(l);
+
return true;
}
bool LogManager::DelLogType(const std::string &type, LogStream *l)
{
std::map<std::string, std::vector<LogStream *> >::iterator i = LogStreams.find(type);
+ std::vector<LogStream *>::iterator gi = GlobalLogStreams.begin();
+
+ while (gi != GlobalLogStreams.end())
+ {
+ if ((*gi) == l)
+ {
+ GlobalLogStreams.erase(gi);
+ break;
+ }
+ }
if (i != LogStreams.end())
{
@@ -80,6 +93,8 @@ bool LogManager::DelLogType(const std::string &type, LogStream *l)
delete l;
return true;
}
+
+ it++;
}
}
@@ -97,11 +112,20 @@ void LogManager::Log(const std::string &type, int loglevel, const std::string &m
while (it != i->second.end())
{
(*it)->OnLog(loglevel, msg);
+ it++;
}
return;
}
+ std::vector<LogStream *>::iterator gi = GlobalLogStreams.begin();
+
+ while (gi != GlobalLogStreams.end())
+ {
+ (*gi)->OnLog(loglevel, msg);
+ gi++;
+ }
+
// blurp, no handler for this type
return;
}