diff --git a/OpenSim/Region/CoreModules/Framework/Statistics/Logging/LogWriter.cs b/OpenSim/Region/CoreModules/Framework/Statistics/Logging/LogWriter.cs
index fd8d5e32bd..3c8e0efa05 100755
--- a/OpenSim/Region/CoreModules/Framework/Statistics/Logging/LogWriter.cs
+++ b/OpenSim/Region/CoreModules/Framework/Statistics/Logging/LogWriter.cs
@@ -52,6 +52,7 @@ namespace OpenSim.Region.CoreModules.Framework.Statistics.Logging
private TimeSpan m_logFileLife;
private DateTime m_logFileEndTime;
private Object m_logFileWriteLock = new Object();
+ private bool m_flushWrite;
// set externally when debugging. If let 'null', this does not write any error messages.
public ILog ErrorLogger = null;
@@ -73,7 +74,9 @@ namespace OpenSim.Region.CoreModules.Framework.Statistics.Logging
/// The directory to create the log file in. May be 'null' for default.
/// The characters that begin the log file name. May be 'null' for default.
/// Maximum age of a log file in minutes. If zero, will set default.
- public LogWriter(string dir, string headr, int maxFileTime)
+ /// Whether to do a flush after every log write. Best left off but
+ /// if one is looking for a crash, this is a good thing to turn on.
+ public LogWriter(string dir, string headr, int maxFileTime, bool flushWrite)
{
m_logDirectory = dir == null ? "." : dir;
@@ -86,8 +89,14 @@ namespace OpenSim.Region.CoreModules.Framework.Statistics.Logging
m_logFileLife = new TimeSpan(0, m_logMaxFileTimeMin, 0);
m_logFileEndTime = DateTime.Now + m_logFileLife;
+ m_flushWrite = flushWrite;
+
Enabled = true;
}
+ // Constructor that assumes flushWrite is off.
+ public LogWriter(string dir, string headr, int maxFileTime) : this(dir, headr, maxFileTime, false)
+ {
+ }
public void Dispose()
{
@@ -153,6 +162,8 @@ namespace OpenSim.Region.CoreModules.Framework.Statistics.Logging
buff.Append(line);
buff.Append("\r\n");
m_logFile.Write(buff.ToString());
+ if (m_flushWrite)
+ m_logFile.Flush();
}
}
}