首页 > 代码库 > Log4net日志文件自动按月份存放和日志独占问题的解决
Log4net日志文件自动按月份存放和日志独占问题的解决
让log4net日志文件自动按月份存放
log4net日志文件的作用还真不小,可以保存管理员、用户对数据库的任何操作,保存管理员和用户的登录记录,分析系统运行错误,所以不舍得随便将日志文件Delete。如果时间长了,日志文件夹一定会有很多很多日志文件,不便于管理员查看。
所以让log4net日志文件自动按月份存放是必须的,其实方法很Easy,额是突发奇想在DatePattern value中增加“yyyyMM\\”,运行后果然如额所愿。
也就是修改Web.Config文件如下:
<file value="http://www.mamicode.com/Log//"/><!--日志文件夹及文件名开头-->
<DatePattern value="http://www.mamicode.com/yyyyMM\\yyyy-MM-dd".log""/><!--文件名后面加上.log后缀,必须使用转义字符-->
<appender name="LogsServiceFileAppender" type="log4net.Appender.RollingFileAppender,log4net"><param name="File" value="http://www.mamicode.com/Logs/"/><param name="AppendToFile" value="http://www.mamicode.com/true"/><param name="MaxSizeRollBackups" value="http://www.mamicode.com/1"/><param name="StaticLogFileName" value="http://www.mamicode.com/false"/><param name="DatePattern" value="http://www.mamicode.com/yyyyMMdd".log""/><param name="RollingStyle" value="http://www.mamicode.com/Date"/><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="http://www.mamicode.com/%n记录时间:%d [%t] %n日志级别:%-5p %n日志内容:%c - %m%n"/></layout></appender>
解决log4net独占日志文件的问题
由于log4net默认情况下会独占日志文件该文件不能被File.Open,否则会出现异常错误,甚为郁闷。网上找到的解决方法:
修改Web.Config文件,在
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"></appender>
节中加入:
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
就可以了,即使用最小锁定模型(minimal locking model),以允许多个进程可以写入同一个文件
本文引用 http://guojun2sq.blog.163.com/blog/static/6433086120111925936159/
Log4net日志文件自动按月份存放和日志独占问题的解决