Skip to content

Instantly share code, notes, and snippets.

@mercdev
Last active December 23, 2015 15:55
Show Gist options
  • Save mercdev/36823939a262bf96e8d6 to your computer and use it in GitHub Desktop.
Save mercdev/36823939a262bf96e8d6 to your computer and use it in GitHub Desktop.
Creates a log4Net RollingFileAppender.
// Init: Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
// hierarchy.Root.AddAppender(CreateWSMFileAppender("logger-name-here"));
// Usage: var wsmLog = LogManager.GetLogger("logger-name-here");
// if (wsmLog != null)
// {
// wsm.InfoFormat("Hi, you did it dynamically!");
// {
private static IAppender CreateFileAppender(string appenderName)
{
PatternLayout patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%message%newline"; // message contains date/time
patternLayout.ActivateOptions();
RollingFileAppender appender = new RollingFileAppender();
appender.Layout = patternLayout;
appender.Name = appenderName;
appender.File = appenderName +"-";
appender.DatePattern = "yyyyMMdd'.log'";
appender.AppendToFile = true;
appender.RollingStyle = RollingFileAppender.RollingMode.Date;
appender.StaticLogFileName = false;
appender.LockingModel = new FileAppender.MinimalLock();
appender.MaxSizeRollBackups = 7;
var loggerMatchFilter = new log4net.Filter.LoggerMatchFilter() { LoggerToMatch = appenderName };
var denyAllFilter = new log4net.Filter.DenyAllFilter();
var minLevel = log4net.Core.Level.Debug;
var levelRangeFilter = new log4net.Filter.LevelRangeFilter()
{
LevelMin = log4net.Core.Level.Debug,
LevelMax = log4net.Core.Level.Fatal
};
appender.AddFilter(loggerMatchFilter);
appender.AddFilter(denyAllFilter);
appender.AddFilter(levelRangeFilter);
appender.ActivateOptions();
return appender;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment