Look for logcontrol-dev.xml in the user settings directory

master
Oz Linden 2017-02-27 09:52:50 -05:00
parent 12e23a3cb8
commit 0a7fd3686a
6 changed files with 19 additions and 38 deletions

View File

@ -312,7 +312,7 @@ namespace
LOG_CLASS(LogControlFile);
public:
static LogControlFile& fromDirectory(const std::string& dir);
static LogControlFile& fromDirectory(const std::string& user_dir, const std::string& app_dir);
virtual bool loadFile();
@ -322,13 +322,12 @@ namespace
{ }
};
LogControlFile& LogControlFile::fromDirectory(const std::string& dir)
LogControlFile& LogControlFile::fromDirectory(const std::string& user_dir, const std::string& app_dir)
{
std::string dirBase = dir + "/";
// NB: We have no abstraction in llcommon for the "proper"
// delimiter but it turns out that "/" works on all three platforms
// NB: We have no abstraction in llcommon for the "proper"
// delimiter but it turns out that "/" works on all three platforms
std::string file = dirBase + "logcontrol-dev.xml";
std::string file = user_dir + "/logcontrol-dev.xml";
llstat stat_info;
if (LLFile::stat(file, &stat_info)) {
@ -336,7 +335,7 @@ namespace
// if it doesn't exist. LLFile has no better abstraction for
// testing for file existence.
file = dirBase + "logcontrol.xml";
file = app_dir + "/logcontrol.xml";
}
return * new LogControlFile(file);
// NB: This instance is never freed
@ -363,7 +362,7 @@ namespace
}
LLError::configure(configuration);
LL_INFOS() << "logging reconfigured from " << filename() << LL_ENDL;
LL_INFOS("LogControlFile") << "logging reconfigured from " << filename() << LL_ENDL;
return true;
}
@ -615,7 +614,7 @@ namespace
}
void commonInit(const std::string& dir, bool log_to_stderr = true)
void commonInit(const std::string& user_dir, const std::string& app_dir, bool log_to_stderr = true)
{
LLError::Settings::getInstance()->reset();
@ -635,7 +634,7 @@ namespace
LLError::addRecorder(recordToWinDebug);
#endif
LogControlFile& e = LogControlFile::fromDirectory(dir);
LogControlFile& e = LogControlFile::fromDirectory(user_dir, app_dir);
// NOTE: We want to explicitly load the file before we add it to the event timer
// that checks for changes to the file. Else, we're not actually loading the file yet,
@ -651,23 +650,9 @@ namespace
namespace LLError
{
void initForServer(const std::string& identity)
void initForApplication(const std::string& user_dir, const std::string& app_dir, bool log_to_stderr)
{
std::string dir = "/opt/linden/etc";
if (LLApp::instance())
{
dir = LLApp::instance()->getOption("configdir").asString();
}
commonInit(dir);
#if !LL_WINDOWS
LLError::RecorderPtr recordToSyslog(new RecordToSyslog(identity));
addRecorder(recordToSyslog);
#endif
}
void initForApplication(const std::string& dir, bool log_to_stderr)
{
commonInit(dir, log_to_stderr);
commonInit(user_dir, app_dir, log_to_stderr);
}
void setPrintLocation(bool print)

View File

@ -60,12 +60,7 @@ public:
namespace LLError
{
LL_COMMON_API void initForServer(const std::string& identity);
// resets all logging settings to defaults needed by server processes
// logs to stderr, syslog, and windows debug log
// the identity string is used for in the syslog
LL_COMMON_API void initForApplication(const std::string& dir, bool log_to_stderr = true);
LL_COMMON_API void initForApplication(const std::string& user_dir, const std::string& app_dir, bool log_to_stderr = true);
// resets all logging settings to defaults needed by applicaitons
// logs to stderr and windows debug log
// sets up log configuration from the file logcontrol.xml in dir

View File

@ -566,7 +566,7 @@ bool LLCrashLogger::init()
// We assume that all the logs we're looking for reside on the current drive
gDirUtilp->initAppDirs("SecondLife");
LLError::initForApplication(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, ""));
LLError::initForApplication(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, ""), gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, ""));
// Default to the product name "Second Life" (this is overridden by the -name argument)
mProductName = "Second Life";

View File

@ -185,7 +185,7 @@ int main(int argc, char **argv)
// Set up llerror logging
{
LLError::initForApplication(".");
LLError::initForApplication(".",".");
LLError::setDefaultLevel(LLError::LEVEL_INFO);
// LLError::setTagLevel("Plugin", LLError::LEVEL_DEBUG);
// LLError::logToFile("slplugin.log");

View File

@ -2206,8 +2206,9 @@ void LLAppViewer::initLoggingAndGetLastDuration()
//
// Set up logging defaults for the viewer
//
LLError::initForApplication(
gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, ""));
LLError::initForApplication( gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "")
,gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "")
);
LLError::setFatalFunction(errorCallback);
//LLError::setTimeFunction(getRuntime);

View File

@ -525,12 +525,12 @@ int main(int argc, char **argv)
const char* LOGTEST = getenv("LOGTEST");
if (LOGTEST)
{
LLError::initForApplication(".", true /* log to stderr */);
LLError::initForApplication(".", ".", true /* log to stderr */);
LLError::setDefaultLevel(LLError::decodeLevel(LOGTEST));
}
else
{
LLError::initForApplication(".", false /* do not log to stderr */);
LLError::initForApplication(".", ".", false /* do not log to stderr */);
LLError::setDefaultLevel(LLError::LEVEL_DEBUG);
}
LLError::setFatalFunction(wouldHaveCrashed);