lllog.cpp

Go to the documentation of this file.
00001 
00034 #include "linden_common.h"
00035 #include "lllog.h"
00036 
00037 #include "llapp.h"
00038 #include "llsd.h"
00039 #include "llsdserialize.h"
00040 
00041 
00042 class LLLogImpl
00043 {
00044 public:
00045         LLLogImpl(LLApp* app) : mApp(app) {}
00046         ~LLLogImpl() {}
00047 
00048         void log(const std::string message, LLSD& info);
00049         bool useLegacyLogMessage(const std::string message);
00050 
00051 private:
00052         LLApp* mApp;
00053 };
00054 
00055 
00056 //@brief Function to log a message to syslog for streambase to collect.
00057 void LLLogImpl::log(const std::string message, LLSD& info)
00058 {
00059         static S32 sequence = 0;
00060     LLSD log_config = mApp->getOption("log-messages");
00061         if (log_config.has(message))
00062         {
00063                 LLSD message_config = log_config[message];
00064                 if (message_config.has("use-syslog"))
00065                 {
00066                         if (! message_config["use-syslog"].asBoolean())
00067                         {
00068                                 return;
00069                         }
00070                 }
00071         }
00072         llinfos << "LLLOGMESSAGE (" << (sequence++) << ") " << message 
00073                 << " " << LLSDNotationStreamer(info) << llendl;
00074 }
00075 
00076 //@brief Function to check if specified legacy log message should be sent.
00077 bool LLLogImpl::useLegacyLogMessage(const std::string message)
00078 {
00079     LLSD log_config = mApp->getOption("log-messages");
00080         if (log_config.has(message))
00081         {
00082                 LLSD message_config = log_config[message];
00083                 if (message_config.has("use-legacy"))
00084                 {
00085                         return message_config["use-legacy"].asBoolean();
00086                 }
00087         }
00088         return true;
00089 }
00090 
00091 
00092 LLLog::LLLog(LLApp* app)
00093 {
00094         mImpl = new LLLogImpl(app);
00095 }
00096 
00097 LLLog::~LLLog()
00098 {
00099         delete mImpl;
00100         mImpl = NULL;
00101 }
00102 
00103 void LLLog::log(const std::string message, LLSD& info)
00104 {
00105         if (mImpl) mImpl->log(message, info);
00106 }
00107 
00108 bool LLLog::useLegacyLogMessage(const std::string message)
00109 {
00110         if (mImpl)
00111         {
00112                 return mImpl->useLegacyLogMessage(message);
00113         }
00114         return true;
00115 }
00116 

Generated on Fri May 16 08:32:03 2008 for SecondLife by  doxygen 1.5.5