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("ふがふが");
}