C#에서 롤링 파일 작성기를 프로그래밍 방식으로 만들려고합니다. Visual Studio 2008을 사용하고 있습니다. log4net 버전 1.2.0.30714를 사용하고 있습니다.log4net 프로그래밍 방식으로 구성 할 때 RollingFileAppender가 "롤링"되지 않습니다.
내 주요한 문제는 내 파일 애플릿이 파일 첨부 자처럼 작동한다는 것입니다. 내가 제공 한 크기 나 날짜 기준에 따라 로그 파일이 롤하지 않습니다. 아래는 제 구성이며 통찰력이나 제안을 주시면 감사하겠습니다. 코드 아래에 내가 시도한 아이디어 중 일부입니다.
string path = "Logs\";
string filename = "test.log";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
log4net.Layout.PatternLayout patternLayout = new log4net.Layout.PatternLayout("[%d] %l %n - %m %n%n");
patternLayout.ActivateOptions();
RollingFileAppender appender = new RollingFileAppender();
appender.Threshold = Level.ALL;
appender.StaticLogFileName = false;
appender.CountDirection = 0; // Makes the logs count 1, 2, 3
appender.RollingStyle = RollingFileAppender.RollingMode.Size;
appender.MaximumFileSize = "1KB";
appender.MaxFileSize = 1 * 1024; // 1 KB
appender.MaxSizeRollBackups = 5;
appender.DatePattern = "yy.MM.dd.hh.mm.ss";
appender.Layout = patternLayout;
appender.Name = "QTracImportHelper";
appender.ImmediateFlush = true;
appender.File = filename;
appender.Writer = new StreamWriter(path + filename, true);
appender.ActivateOptions();
Hierarchy hierarchy = (Hierarchy)LogManager.GetLoggerRepository();
hierarchy.Root.AddAppender(appender);
hierarchy.Configured = true;
StreamWriter를 제거하면 예외없이 파일이 생성되지 않는 것으로 나타났습니다. 파일 이름을 제거하면 log4net에서 예외가 발생합니다. 나는 MaxFileSize와 MaximumFileSize를 사용하여 롤링 스 타일을 Date와 Composite로 변경하는 것뿐만 아니라 아무 소용이없는 시도도했다. 또한 작성자 스트림의 형식이 잘못되면 File 속성 ({ "값은 null 일 수 없습니다. \ r \ n 매개 변수 이름 : fileName"} {System.ArgumentNullException})을 포함하지 않는 것과 동일한 예외가 생성됩니다.
아이디어가 있으십니까?
BTW, 당신이 사용한 datePattern은, 모든 경로에 대한 작동하지 않지만,이 작업을 표시 매 초마다 ..... –