Added logger that throws away output

pull/37/merge
Kohsuke Kawaguchi 2014-03-31 18:37:31 -07:00
parent b08d85ed80
commit ff002e8711
2 changed files with 44 additions and 18 deletions

View File

@ -16,15 +16,12 @@ namespace winsw
public abstract class LogHandler
{
private EventLogger eventLogger;
private string baseLogFileName;
public LogHandler(string logDirectory, string baseName)
{
this.baseLogFileName = Path.Combine(logDirectory, baseName);
}
public abstract void log(Stream outputStream, Stream errorStream);
/// <summary>
/// Error and information about logging should be reported here.
/// </summary>
public EventLogger EventLogger
{
set
@ -37,14 +34,6 @@ namespace winsw
}
}
public string BaseLogFileName
{
get
{
return this.baseLogFileName;
}
}
/// <summary>
/// Convenience method to copy stuff from StreamReader to StreamWriter
/// </summary>
@ -79,7 +68,30 @@ namespace winsw
}
}
public abstract class SimpleLogAppender : LogHandler
/// <summary>
/// Base class for file-based loggers
/// </summary>
public abstract class AbstractFileLogAppender : LogHandler
{
private string baseLogFileName;
public AbstractFileLogAppender(string logDirectory, string baseName)
{
this.baseLogFileName = Path.Combine(logDirectory, baseName);
}
protected string BaseLogFileName
{
get
{
return this.baseLogFileName;
}
}
}
public abstract class SimpleLogAppender : AbstractFileLogAppender
{
private FileMode fileMode;
@ -131,10 +143,21 @@ namespace winsw
: base(logDirectory, baseName, FileMode.Create)
{
}
}
public class TimeBasedRollingLogAppender : LogHandler
/// <summary>
/// LogHandler that throws away output
/// </summary>
public class IgnoreLogAppender : LogHandler
{
public override void log(Stream outputStream, Stream errorStream)
{
new Thread(delegate() { CopyStream(outputStream, Stream.Null); }).Start();
new Thread(delegate() { CopyStream(errorStream, Stream.Null); }).Start();
}
}
public class TimeBasedRollingLogAppender : AbstractFileLogAppender
{
private string pattern;
@ -208,7 +231,7 @@ namespace winsw
}
public class SizeBasedRollingLogAppender : LogHandler
public class SizeBasedRollingLogAppender : AbstractFileLogAppender
{
public static int BYTES_PER_KB = 1024;
public static int BYTES_PER_MB = 1024 * BYTES_PER_KB;

View File

@ -322,6 +322,9 @@ namespace winsw
case "rotate":
return new SizeBasedRollingLogAppender(LogDirectory, BaseName);
case "none":
return new IgnoreLogAppender();
case "reset":
return new ResetLogAppender(LogDirectory, BaseName);