aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Console/LogBase.cs
diff options
context:
space:
mode:
authorlbsa712007-10-10 18:24:13 +0000
committerlbsa712007-10-10 18:24:13 +0000
commita40e7100a232827cffb813bbbbe9374324ad3448 (patch)
tree7f16f392d653f155ca90d5477c842db9c881f3ed /OpenSim/Framework/Console/LogBase.cs
parentAdded unit tests, based on nunit for the IInventoryData (diff)
downloadopensim-SC_OLD-a40e7100a232827cffb813bbbbe9374324ad3448.zip
opensim-SC_OLD-a40e7100a232827cffb813bbbbe9374324ad3448.tar.gz
opensim-SC_OLD-a40e7100a232827cffb813bbbbe9374324ad3448.tar.bz2
opensim-SC_OLD-a40e7100a232827cffb813bbbbe9374324ad3448.tar.xz
* Gave ModuleLoader some good lovin'
* Introduced ModuleLoader.PickupModules that currently picks up IRegionModule:s from /bin * Made LogBase thread-safe (or at least not thread-ignorant) * Ignored some genned files
Diffstat (limited to 'OpenSim/Framework/Console/LogBase.cs')
-rw-r--r--OpenSim/Framework/Console/LogBase.cs121
1 files changed, 57 insertions, 64 deletions
diff --git a/OpenSim/Framework/Console/LogBase.cs b/OpenSim/Framework/Console/LogBase.cs
index 67440f6..5a7ce4d 100644
--- a/OpenSim/Framework/Console/LogBase.cs
+++ b/OpenSim/Framework/Console/LogBase.cs
@@ -46,6 +46,8 @@ namespace OpenSim.Framework.Console
46 46
47 public class LogBase 47 public class LogBase
48 { 48 {
49 private object m_syncRoot = new object();
50
49 StreamWriter Log; 51 StreamWriter Log;
50 public conscmd_callback cmdparser; 52 public conscmd_callback cmdparser;
51 public string componentname; 53 public string componentname;
@@ -64,7 +66,7 @@ namespace OpenSim.Framework.Console
64 } 66 }
65 67
66 System.Console.WriteLine("Logs will be saved to current directory in " + LogFile); 68 System.Console.WriteLine("Logs will be saved to current directory in " + LogFile);
67 69
68 Log = File.AppendText(LogFile); 70 Log = File.AppendText(LogFile);
69 Log.WriteLine("========================================================================"); 71 Log.WriteLine("========================================================================");
70 Log.WriteLine(componentname + " Started at " + DateTime.Now.ToString()); 72 Log.WriteLine(componentname + " Started at " + DateTime.Now.ToString());
@@ -76,27 +78,6 @@ namespace OpenSim.Framework.Console
76 Log.Close(); 78 Log.Close();
77 } 79 }
78 80
79 [Obsolete("Log.WriteLine is obsolete, use Warn / Error / Verbose instead.")]
80 public void Write(string format, params object[] args)
81 {
82 // HOUSEKEEPING : Will remove once use is removed.
83 Notice(format, args);
84 return;
85 }
86
87 [Obsolete("Log.WriteLine is obsolete, use Warn / Error / Verbose instead.")]
88 public void WriteLine(LogPriority importance, string format, params object[] args)
89 {
90 // HOUSEKEEPING : Will remove once use is removed.
91 Log.WriteLine(format, args);
92 Log.Flush();
93 if (!m_silent)
94 {
95 System.Console.WriteLine(format, args);
96 }
97 return;
98 }
99
100 /// <summary> 81 /// <summary>
101 /// derive an ansi color from a string, ignoring the darker colors. 82 /// derive an ansi color from a string, ignoring the darker colors.
102 /// This is used to help automatically bin component tags with colors 83 /// This is used to help automatically bin component tags with colors
@@ -178,7 +159,7 @@ namespace OpenSim.Framework.Console
178 public void Error(string sender, string format, params object[] args) 159 public void Error(string sender, string format, params object[] args)
179 { 160 {
180 WritePrefixLine(DeriveColor(sender), sender); 161 WritePrefixLine(DeriveColor(sender), sender);
181 Error( format, args); 162 Error(format, args);
182 return; 163 return;
183 } 164 }
184 165
@@ -229,7 +210,7 @@ namespace OpenSim.Framework.Console
229 WriteNewLine(ConsoleColor.Blue, format, args); 210 WriteNewLine(ConsoleColor.Blue, format, args);
230 return; 211 return;
231 } 212 }
232 213
233 [Conditional("DEBUG")] 214 [Conditional("DEBUG")]
234 public void Debug(string format, params object[] args) 215 public void Debug(string format, params object[] args)
235 { 216 {
@@ -247,66 +228,75 @@ namespace OpenSim.Framework.Console
247 228
248 private void WriteNewLine(ConsoleColor color, string format, params object[] args) 229 private void WriteNewLine(ConsoleColor color, string format, params object[] args)
249 { 230 {
250 string now = System.DateTime.Now.ToString("[MM-dd hh:mm:ss] "); 231 lock (m_syncRoot)
251 Log.Write(now);
252 Log.WriteLine(format, args);
253 Log.Flush();
254 if (!m_silent)
255 { 232 {
256 System.Console.Write(now); 233 string now = System.DateTime.Now.ToString("[MM-dd hh:mm:ss] ");
257 try 234 Log.Write(now);
235 Log.WriteLine(format, args);
236 Log.Flush();
237 if (!m_silent)
258 { 238 {
259 if (color != ConsoleColor.White) 239 System.Console.Write(now);
260 System.Console.ForegroundColor = color; 240 try
241 {
242 if (color != ConsoleColor.White)
243 System.Console.ForegroundColor = color;
261 244
262 System.Console.WriteLine(format, args); 245 System.Console.WriteLine(format, args);
263 System.Console.ResetColor(); 246 System.Console.ResetColor();
264 } 247 }
265 catch (ArgumentNullException) 248 catch (ArgumentNullException)
266 { 249 {
267 // Some older systems dont support coloured text. 250 // Some older systems dont support coloured text.
268 System.Console.WriteLine(format, args); 251 System.Console.WriteLine(format, args);
252 }
269 } 253 }
254 return;
270 } 255 }
271 return;
272 } 256 }
273 257
274 private void WritePrefixLine(ConsoleColor color, string sender) 258 private void WritePrefixLine(ConsoleColor color, string sender)
275 { 259 {
276 sender = sender.ToUpper(); 260 lock (m_syncRoot)
277 Log.WriteLine("[" + sender + "] "); 261 {
278 Log.Flush(); 262 sender = sender.ToUpper();
263 Log.WriteLine("[" + sender + "] ");
264 Log.Flush();
279 265
280 System.Console.Write("["); 266 System.Console.Write("[");
281 267
282 if (!m_silent) 268 if (!m_silent)
283 {
284 try
285 {
286 System.Console.ForegroundColor = color;
287 System.Console.Write(sender);
288 System.Console.ResetColor();
289 }
290 catch (ArgumentNullException)
291 { 269 {
292 // Some older systems dont support coloured text. 270 try
293 System.Console.WriteLine(sender); 271 {
272 System.Console.ForegroundColor = color;
273 System.Console.Write(sender);
274 System.Console.ResetColor();
275 }
276 catch (ArgumentNullException)
277 {
278 // Some older systems dont support coloured text.
279 System.Console.WriteLine(sender);
280 }
294 } 281 }
295 }
296 282
297 System.Console.Write("] \t"); 283 System.Console.Write("] \t");
298 284
299 return; 285 return;
286 }
300 } 287 }
301 288
302 289
303 public string ReadLine() 290 public string ReadLine()
304 { 291 {
305 try { 292 try
293 {
306 string TempStr = System.Console.ReadLine(); 294 string TempStr = System.Console.ReadLine();
307 Log.WriteLine(TempStr); 295 Log.WriteLine(TempStr);
308 return TempStr; 296 return TempStr;
309 } catch (Exception e) { 297 }
298 catch (Exception e)
299 {
310 MainLog.Instance.Error("Console", "System.Console.ReadLine exception " + e.ToString()); 300 MainLog.Instance.Error("Console", "System.Console.ReadLine exception " + e.ToString());
311 return ""; 301 return "";
312 } 302 }
@@ -446,9 +436,12 @@ namespace OpenSim.Framework.Console
446 Array.Resize<string>(ref tempstrarray, tempstrarray.Length - 1); 436 Array.Resize<string>(ref tempstrarray, tempstrarray.Length - 1);
447 Array.Reverse(tempstrarray); 437 Array.Reverse(tempstrarray);
448 string[] cmdparams = (string[])tempstrarray; 438 string[] cmdparams = (string[])tempstrarray;
449 try { 439 try
440 {
450 RunCmd(cmd, cmdparams); 441 RunCmd(cmd, cmdparams);
451 } catch (Exception e) { 442 }
443 catch (Exception e)
444 {
452 MainLog.Instance.Error("Console", "Command failed with exception " + e.ToString()); 445 MainLog.Instance.Error("Console", "Command failed with exception " + e.ToString());
453 } 446 }
454 } 447 }
@@ -458,7 +451,7 @@ namespace OpenSim.Framework.Console
458 get 451 get
459 { 452 {
460 string result = String.Empty; 453 string result = String.Empty;
461 454
462 string stacktrace = Environment.StackTrace; 455 string stacktrace = Environment.StackTrace;
463 List<string> lines = new List<string>(stacktrace.Split(new string[] { "at " }, StringSplitOptions.None)); 456 List<string> lines = new List<string>(stacktrace.Split(new string[] { "at " }, StringSplitOptions.None));
464 457