Log4net(5) ログの出し方(RollingFileAppender編)

ファイルのサイズが大きくなったり、日付が変わると、ログをローテートしてくれるAppenderでログを出力する。
これは非常にやっかい。心してかかれ!


static void Main(string[] args)
{
log4net.Appender.RollingFileAppender rfa = new log4net.Appender.RollingFileAppender();

// -------------------------------------------------------------------------
// AppenderSkelton
// -------------------------------------------------------------------------
rfa.Threshold = log4net.Core.Level.All;
rfa.Layout = new log4net.Layout.SimpleLayout();
rfa.Name = "sample_Log4netForConsole";

// -------------------------------------------------------------------------
// TextWriterAppender
// -------------------------------------------------------------------------
rfa.ImmediateFlush = true;

// -------------------------------------------------------------------------
// FileAppdender
// -------------------------------------------------------------------------
rfa.File = System.Environment.CurrentDirectory + "\\test_rolling.log";
rfa.AppendToFile = true;
rfa.Encoding = System.Text.Encoding.UTF8;
rfa.SecurityContext = log4net.Core.SecurityContextProvider.DefaultProvider.CreateSecurityContext(null);
rfa.LockingModel = new log4net.Appender.FileAppender.ExclusiveLock();

// -------------------------------------------------------------------------
// RollingFileAppdender
// -------------------------------------------------------------------------
rfa.MaxFileSize = 1024 * 1024 * 10;
//rfa.MaximumFileSize = "10MB";
rfa.DatePattern = "'.'yyyy---mm---dd";
rfa.MaxSizeRollBackups = 4;
rfa.CountDirection = -1;
rfa.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Size;
rfa.StaticLogFileName = false;

rfa.ActivateOptions();

log4net.Config.BasicConfigurator.Configure(rfa);

log4net.ILog logger = log4net.LogManager.GetLogger("sample_Log4netForConsole");

logger.Debug("ほげほげ");
logger.Error("ふがふが");
}

実行すると、カレントディレクトリに「test_rolling.log」というファイルが作成され、ログが出力されるようになる。
詳しい説明は明日・・