c# - Log4Net, Cannot use multiple RollingFileAppenders at a time -
i have strange problem. i'm trying create multiple rolling file appenders referencing same file, using 1 of theese appenders @ time.
the matter is, if declare appender this:
<appender name="app1" type="log4net.appender.rollingfileappender"> <file value="c:\log.txt" /> <layout type="log4net.layout.patternlayout,log4net"> <conversionpattern value="%date [%thread] %-5level %logger [%ndc] - message%newline" /> </layout> </appender> <logger name="app1" additivity="false"> <level value="debug" /> <appender-ref ref="app1" /> </logger> <appender name="app2" type="log4net.appender.rollingfileappender"> <file value="c:\log.txt" /> <layout type="log4net.layout.patternlayout,log4net"> <conversionpattern value="%date [%thread] %-5level %logger [%ndc] - message%newline" /> </layout> </appender> <logger name="app2" additivity="false"> <level value="debug" /> <appender-ref ref="app2" /> </logger>
then "app1" logger writes file no problem, not "app2" logger, if it's obtaining first logger. obviously, if make 2 logger switch place, works "app2", not "app1"
also, when appending fails can see in debug window:
log4net: opening file writing [c:\log.txt] append [true] log4net: opening file writing [c:\log.txt] append [true]
which, guess, means appending, strangely enough doesn't so. , in working scenario cannot see logs. hint appreciated!! time
maybe can write this:
<root> <level value="debug" /> <appender-ref ref="app1" /> <appender-ref ref="app2" /> </root>
here configuration file uses multiple appenders. can find in http://logging.apache.org/log4net/release/manual/configuration.html
<log4net> <appender name="console" type="log4net.appender.consoleappender"> <layout type="log4net.layout.patternlayout"> <!-- pattern output caller's file name , line number --> <conversionpattern value="%5level [%thread] (%file:%line) - %message%newline" /> </layout> </appender> <appender name="rollingfile" type="log4net.appender.rollingfileappender"> <file value="example.log" /> <appendtofile value="true" /> <maximumfilesize value="100kb" /> <maxsizerollbackups value="2" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%level %thread %logger - %message%newline" /> </layout> </appender> <root> <level value="debug" /> <appender-ref ref="console" /> <appender-ref ref="rollingfile" /> </root>
it's possible uses multiple appenders, can't use multiple fileappenders(or rollingfileappenders) log in same file. if change app2 appender log in different file, works.
<appender name="app2" type="log4net.appender.rollingfileappender"> <file value="c:\log2.txt" /> <layout type="log4net.layout.patternlayout,log4net"> <conversionpattern value="%date [%thread] %-5level %logger [%ndc] - message%newline" /> </layout> </appender>
the problem maybe log4net can't access same file @ same time different fileappenders.
Comments
Post a Comment