diff options
Diffstat (limited to 'OpenSim/Server/Base')
-rw-r--r-- | OpenSim/Server/Base/ServicesServerBase.cs | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/OpenSim/Server/Base/ServicesServerBase.cs b/OpenSim/Server/Base/ServicesServerBase.cs index dee31bd..18f0f24 100644 --- a/OpenSim/Server/Base/ServicesServerBase.cs +++ b/OpenSim/Server/Base/ServicesServerBase.cs | |||
@@ -85,11 +85,13 @@ namespace OpenSim.Server.Base | |||
85 | argvConfig.AddSwitch("Startup", "logfile", "l"); | 85 | argvConfig.AddSwitch("Startup", "logfile", "l"); |
86 | argvConfig.AddSwitch("Startup", "inifile", "i"); | 86 | argvConfig.AddSwitch("Startup", "inifile", "i"); |
87 | argvConfig.AddSwitch("Startup", "prompt", "p"); | 87 | argvConfig.AddSwitch("Startup", "prompt", "p"); |
88 | argvConfig.AddSwitch("Startup", "logconfig", "g"); | ||
88 | 89 | ||
89 | // Automagically create the ini file name | 90 | // Automagically create the ini file name |
90 | // | 91 | // |
91 | string fileName = Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location); | 92 | string fileName = Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location); |
92 | string iniFile = fileName + ".ini"; | 93 | string iniFile = fileName + ".ini"; |
94 | string logConfig = null; | ||
93 | 95 | ||
94 | IConfig startupConfig = argvConfig.Configs["Startup"]; | 96 | IConfig startupConfig = argvConfig.Configs["Startup"]; |
95 | if (startupConfig != null) | 97 | if (startupConfig != null) |
@@ -100,6 +102,9 @@ namespace OpenSim.Server.Base | |||
100 | // | 102 | // |
101 | // Check if a prompt was given on the command line | 103 | // Check if a prompt was given on the command line |
102 | prompt = startupConfig.GetString("prompt", prompt); | 104 | prompt = startupConfig.GetString("prompt", prompt); |
105 | // | ||
106 | // Check for a Log4Net config file on the command line | ||
107 | logConfig =startupConfig.GetString("logconfig",logConfig); | ||
103 | } | 108 | } |
104 | 109 | ||
105 | // Find out of the file name is a URI and remote load it | 110 | // Find out of the file name is a URI and remote load it |
@@ -171,7 +176,15 @@ namespace OpenSim.Server.Base | |||
171 | OpenSimAppender consoleAppender = null; | 176 | OpenSimAppender consoleAppender = null; |
172 | FileAppender fileAppender = null; | 177 | FileAppender fileAppender = null; |
173 | 178 | ||
174 | XmlConfigurator.Configure(); | 179 | if ( logConfig != null ) |
180 | { | ||
181 | FileInfo cfg = new FileInfo(logConfig); | ||
182 | XmlConfigurator.Configure(cfg); | ||
183 | } | ||
184 | else | ||
185 | { | ||
186 | XmlConfigurator.Configure(); | ||
187 | } | ||
175 | 188 | ||
176 | ILoggerRepository repository = LogManager.GetRepository(); | 189 | ILoggerRepository repository = LogManager.GetRepository(); |
177 | IAppender[] appenders = repository.GetAppenders(); | 190 | IAppender[] appenders = repository.GetAppenders(); |
@@ -207,11 +220,12 @@ namespace OpenSim.Server.Base | |||
207 | { | 220 | { |
208 | if (startupConfig != null) | 221 | if (startupConfig != null) |
209 | { | 222 | { |
210 | 223 | string cfgFileName = startupConfig.GetString("logfile", null); | |
211 | fileName = startupConfig.GetString("logfile", fileName+".log"); | 224 | if (cfgFileName != null) |
212 | fileName = Path.GetFullPath(Path.Combine(".", fileName)); | 225 | { |
213 | fileAppender.File = fileName; | 226 | fileAppender.File = cfgFileName; |
214 | fileAppender.ActivateOptions(); | 227 | fileAppender.ActivateOptions(); |
228 | } | ||
215 | } | 229 | } |
216 | } | 230 | } |
217 | 231 | ||