파일 이름에 날짜가 포함 된 Log4net 롤링 매일 파일 이름
예를 들어 이름이 지정된 파일을 갖고 싶습니다.
dd.mm.yyyy.log
log4net으로 어떻게 가능합니까?
Log4net 구성 파일에서 RollingFileAppender와 함께 다음 매개 변수를 사용하십시오.
<param name="DatePattern" value="dd.MM.yyyy'.log'" />
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="logs\" />
<datePattern value="dd.MM.yyyy'.log'" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
RollingLogFileAppender의 경우 다음 요소와 값도 필요합니다.
<rollingStyle value="Date" />
<staticLogFileName value="false" />
Log4Net 1.2.13을 사용하여 다음 구성 설정을 사용하여 파일 이름에 날짜 시간을 허용합니다.
<file type="log4net.Util.PatternString" value="E:/logname-%utcdate{yyyy-MM-dd}.txt" />
다음과 같은 규칙으로 파일을 제공합니다. logname-2015-04-17.txt
이를 통해 일반적으로 하루에 1 로그를 유지하려면 다음을 갖는 것이 가장 좋습니다.
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
파일 크기가 중요한 경우 다음은 새 날이 나타날 때까지 5MB 크기의 500 개 파일을 허용합니다. CountDirection 은 더 이상 최신이 아닌 파일의 오름차순 또는 내림차순 번호 매기기를 허용합니다.
<maxSizeRollBackups value="500" />
<maximumFileSize value="5MB" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<CountDirection value="1"/>
<staticLogFileName value="true" />
나는 ( '.log'파일 이름과 'myfilename_'주위의 작은 따옴표를 주목하십시오)를 사용하여 끝났습니다.
<rollingStyle value="Date" />
<datePattern value="'myfilename_'yyyy-MM-dd"/>
<preserveLogFileNameExtension value="true" />
<staticLogFileName value="false" />
<file type="log4net.Util.PatternString" value="c:\\Logs\\.log" />
이것은 나에게 준다 :
myfilename_2015-09-22.log
myfilename_2015-09-23.log
.
.
나는 모든 대답을 시도했지만 항상 누락되고 예상대로 작동하지 않는 것이있었습니다.
그런 다음 각 답변에 주어진 힌트로 약간의 실험을 수행했으며 다음 설정으로 성공했습니다.
<appender name="RollingActivityLog" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="C:\temp\LOG4NET_Sample_Activity.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<preserveLogFileNameExtension value="true" />
<datePattern value="-yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
다른 매개 변수 조합의 문제는 최신 파일에 시간 패턴이 없거나 시간 패턴이 추가되어 매일 .log20171215
새로운 파일 시간 (및 새 파일 유형! )이 추가되거나 두 문제가 모두 발생한다는 것입니다.
이제이 설정으로 다음과 같은 파일을 얻습니다.
LOG4NET_Sample_Activity-20171215.log
내가 원하는 것입니다.
요약:
<file value=...
속성에 날짜 패턴을 넣지 말고에 정의하십시오datePattern
.Make sure you have the
preserveLogFileNameExtension
value attribute set totrue
.Make sure you have the
staticLogFileName
value set tofalse
.Set the
rollingStyle
attribute value toDate
.
To preserve file extension:
<log4net>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="D:\\LogFolder\\%date{yyyyMM}\\SchT.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maximumFileSize value="30MB" />
<staticLogFileName value="true" />
<preserveLogFileNameExtension value="true"/>
<datePattern value="ddMMyyyy" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
</log4net>
The extended configuration section in a previous response with
...
...
<rollingStyle value="Composite" />
...
...
listed works but I did not have to use
<staticLogFileName value="false" />
. I think the RollingAppender must (logically) ignore that setting since by definition the file gets rebuilt each day when the application restarts/reused. Perhaps it does matter for immediate rollover EVERY time the application starts.
'program tip' 카테고리의 다른 글
문자열에서 마지막 쉼표 제거 (0) | 2020.07.24 |
---|---|
문자열에서 단일 문자를 제거하는 방법 (0) | 2020.07.24 |
UIButton 사용자 정의 글꼴 세로 정렬 (0) | 2020.07.24 |
jquery를 사용하여 뷰포트를 기준으로 요소의 위치 가져 오기 (0) | 2020.07.24 |
ie8 var w = window.open ()-“메시지 : 유효하지 않은 인수.” (0) | 2020.07.24 |