现在我想每次写文件的时候都直接用最新的数据覆盖之前文件内的数据,配置如下,但是却每次是叠加的,log4用得不太多,麻烦大家帮忙看看,谢谢
<logger name="UserMultipleLoginLog" additivity="false"> <level value="INFO" /> <appender-ref ref="UserMultipleLoginLogAppender" /> <appender-ref ref="Console" /> </logger> <appender name="UserMultipleLoginLogAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="_LogData\UserMultipleLoginLog.txt" /> <param name="AppendToFile" value="false" /> <param name="MaxSizeRollBackups" value="0" /> <param name="MaximumFileSize" value="200KB" /> <param name="RollingStyle" value="Size" /> <param name="StaticLogFileName" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%m%n" /> </layout> </appender>
代码如下:
ILog BakLogger = LogManager.GetLogger("UserMultipleLoginLog"); BakLogger.Info(logStrBuilder.ToString());
写两次以后的文件数据如下,有两块数据,实际我只希望有一块数据:
10240;2013-01-21 11:01:54.941 10259;2013-01-21 16:21:29.146 10276;2013-01-21 18:46:38.158 10280;2013-01-22 10:04:13.524 10287;2013-01-22 10:54:34.148 11833;2013-01-22 16:11:14.328 10301;2013-01-22 16:57:41.912 10302;2013-01-22 17:06:30.642 10304;2013-01-22 17:23:04.029 10240;2013-01-21 11:01:54.941 10259;2013-01-21 16:21:29.146 10276;2013-01-21 18:46:38.158 10280;2013-01-22 10:04:13.524 10287;2013-01-22 10:54:34.148 11833;2013-01-22 16:11:14.328 10301;2013-01-22 16:57:41.912 10302;2013-01-22 17:06:30.642 10304;2013-01-22 17:23:04.029
看看这里http://www.cnblogs.com/henw/archive/2012/11/08/2760780.html
<param name="AppendToFile" value="false" />,这个属性的意思并不是每写一次文件就把前一次的内容覆盖,它的覆盖行为是根据
<param name="RollingStyle" value="Size" />的配置来的,配置Size的话,就是当达到了指定大小的情况下才覆盖,配置成Once,就是每次重启程序的时候覆盖,没有你说的那种写一段就覆盖的用法.
不明白你的意思
就是想每次写文件的时候都直接覆盖文件内原有的数据
将
type="log4net.Appender.RollingFileAppender">
改为
type="llog4net.Appender.FileAppender">
按照连接中的方法修改为如下,但是依然还是不能每次写文件的时候覆盖原有数据,不知道是不是哪里写错了
<log4net> <logger name="UserMultipleLoginLog"> <level value="INFO" /> <appender-ref ref="UserMultipleLoginLogAppender" /> </logger> <appender name="UserMultipleLoginLogAppender" type="log4net.Appender.FileAppender"> <file value="_LogData\UserMultipleLoginLog.txt" /> <appendToFile value="false" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message%newline" /> </layout> </appender> </log4net>
写入的文件如下(两次写入的数据是叠加的):
11905;2013-01-23 11:56:29.518
11905;2013-01-23 11:56:41.938
11907;2013-01-23 11:56:50.048
11908;2013-01-23 11:56:59.757
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
这参数是可以配置的