C# で log4net を使用して、RollingFileAppender のファイル名にパターンを指定するために PatternString を使用したいと思います。これは構成ファイルで簡単に行うことができ、オンラインには多くの例があります。ただし、C# コードで同じことをしたいと思います。
これは、構成ファイルで行われる方法です。
<file type="log4net.Util.PatternString" value="C:\Log\MyLogFile.[%processid].txt" />
以下の私のコードは、構成ファイルなしで log4net をセットアップすることに関するすべてを行います。上記の PatternString 行を除きます。コードで RollingFileAppender の PatternString を指定するにはどうすればよいですか?
私のコードは次のようになります。
public class Log4NetInitializer
{
public static void Setup()
{
Hierarchy hierarchy = (Hierarchy) LogManager.GetRepository();
PatternLayout patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%date %-5level %logger [%ndc] %thread %newline%message%newline%exception";
patternLayout.ActivateOptions();
RollingFileAppender fileLogRoot = new RollingFileAppender();
fileLogRoot.AppendToFile = true;
fileLogRoot.File = @"C:\Log\MyLogFile.txt";
fileLogRoot.Layout = patternLayout;
fileLogRoot.MaxSizeRollBackups = 5;
fileLogRoot.Encoding = Encoding.UTF8;
fileLogRoot.LockingModel = new FileAppender.MinimalLock();
fileLogRoot.ActivateOptions();
hierarchy.Root.AddAppender(fileLogRoot);
hierarchy.Root.Level = Level.Info;
hierarchy.Configured = true;
}
}