Log4net(9) RollingFileAppender パラメータ説明


static void Main(string[] args)
{
/**************************************************************************/

// RollingFileAppender をインスタンス化し、色々とプロパティをセットする
log4net.Appender.RollingFileAppender rfa = new log4net.Appender.RollingFileAppender();

// -------------------------------------------------------------------------
// AppenderSkelton
// -------------------------------------------------------------------------
// Appender名
rfa.Name = "sample_Log4netForConsole";

// ログはレベルによらず全部出力する
/*
Level.Off = int.MaxValue
Level.Emergency = 120000
Level.Fatal = 110000
Level.Alert = 100000
Level.Critical = 90000
Level.Error = 70000
Level.Warn = 60000
Level.Notice = 50000
Level.Info = 40000
Level.Debug = 30000
Level.Fine = 30000
Level.Trace = 20000
Level.Finer = 20000
Level.Verbose = 10000
Level.Finest = 10000
Level.All = int.MinValue
*/
rfa.Threshold = log4net.Core.Level.All;

// ログに出力する文字列のフォーマット
/*
PatternLayout <-- たいていこれを使用する
RawPropertyLayout;
RawTimeStampLayout;
RawUtcTimeStampLayout;
XmlLayout;
*/
rfa.Layout = new log4net.Layout.SimpleLayout();

// -------------------------------------------------------------------------
// 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);

// ファイルロック方法を指定する
/*
FileAppender.ExclusiveLock
FileAppender.MinimalLock
*/
rfa.LockingModel = new log4net.Appender.FileAppender.ExclusiveLock();

// -------------------------------------------------------------------------
// RollingFileAppdender
// -------------------------------------------------------------------------
// ログファイルの最大サイズを指定する(以下の2行どちらかでOK)
rfa.MaxFileSize = 1024 * 1024 * 10;
//rfa.MaximumFileSize = "10M";

// 日付でローテーションする場合は、以下の形式でファイル名を作成する
rfa.DatePattern = ".yyyy---MM---dd.log";

// ローテーションするファイルの数
rfa.MaxSizeRollBackups = 4;

// ローテーションする場合、連番の数字を使いまわすかどうか
rfa.CountDirection = -1;

// ローテーションする条件を指定する(サイズ、日付)
/*
log4net.Appender.RollingFileAppender.RollingMode.Date; 日付が変更されたらローテーション
log4net.Appender.RollingFileAppender.RollingMode.Once; 起動時1回だけローテーション実施
log4net.Appender.RollingFileAppender.RollingMode.Size; 指定サイズ
log4net.Appender.RollingFileAppender.RollingMode.Composite; 日付 or サイズの両方
*/
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("ふがふが");
}