Log4net日志文件自动按月份存放和日志独占问题的解决

让log4net日志文件自动按月份存放

log4net日志文件的作用还真不小,可以保存管理员、用户对数据库的任何操作,保存管理员和用户的登录记录,分析系统运行错误,所以不舍得随便将日志文件Delete。如果时间长了,日志文件夹一定会有很多很多日志文件,不便于管理员查看。

所以让log4net日志文件自动按月份存放是必须的,其实方法很Easy,额是突发奇想在DatePattern value中增加“yyyyMM\\”,运行后果然如额所愿。

也就是修改Web.Config文件如下:

<file value="Log\\"/><!--日志文件夹及文件名开头-->
<DatePattern value="yyyyMM\\yyyy-MM-dd&quot;.log&quot;"/><!--文件名后面加上.log后缀,必须使用转义字符-->

<appender name="LogsServiceFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="\Logs\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="1"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyyMMdd".log""/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%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/

时间: 2024-12-24 02:41:21

Log4net日志文件自动按月份存放和日志独占问题的解决的相关文章

SQL Server 默认跟踪应用4 -- 检测日志文件自动增长

SQL Server 默认跟踪应用4 -- 检测日志文件自动增长 用户抱怨SQL Server数据库运行非常慢.通过默认跟踪的这个查询,可以识别出log file autogrow活动导致的长时间运行.为什么如此之慢? SELECT te.name AS [trace_events_name] , t.DatabaseName , t.NTDomainName , t.ApplicationName , t.LoginName , t.Duration , t.StartTime , t.End

[SQL Server] 数据库日志文件自动增长导致连接超时的分析

1.现象.问题描述 客户反映某客户端登陆不了,客户端程序日志显示“连接数据库超时”:检查对应的数据库服务器,日志显示“Autogrow of file '某数据库日志文件' in database '某数据库' was cancelled by user or timed out after 2391 milliseconds.  Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly

Log4net入门(回滚日志文件篇)

在上一篇Log4net(日志文件篇)中,我们使用"log4net.Appender.FileAppender"将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能.因此,有必要对日志文件按某种条件进行切分,要切分日志文件,我们可以使用"log4net.Appender.RollingFileAppender"输出源,使用该输出源我们可以按照文件大小或者日期对日志文件进行切分,下面我们分别描述之. 一.按文件大小切分日志

实现LVM逻辑卷数据库备份还原,二进制日志文件分离存放

首先需要做到的是就是数据库文件,以及二进制日志文件全部放在单独的逻辑卷存储. 实现LVM逻辑卷,数据,二进制日志文件分离存放 一,创建逻辑卷步骤 (1),创建新分区 1,查看分区情况看看还剩多少空间 [[email protected] backup]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 50G 0 part /

使用作业自动清理数据库日志文件

原文:使用作业自动清理数据库日志文件 在上一篇文章中介绍了如何删除数据库日志文件,但是想想还是不是不方便需要手工操作,于是想结合作业实现自动清理日志文件,在清理日志文件时我加上了条件,当磁盘控空间不足多少M才会清理,下面介绍如何实现该功能.没有阅读上一篇文章的,可以通过传送门阅读(删除数据库日志文件的方法)! 阅读目录 SQL查询磁盘空间大小 存储过程添加作业 示例下载 回到顶部 SQL查询磁盘空间大小  采用内置的存储过程,即可查看各个磁盘可用空间 exec master..xp_fixedd

动态指定log4net日志文件名称

如果是希望日志文件按常见的日期格式动态命名,没什么好说的,直接修改app.config <param name="DatePattern" value="yyyyMMdd".log"" /> 但我遇到的一个场景,是同一个exe要运行多个实例,如何分别写入不同的日志文件呢? 参考过 动态修改log4net组件的日志文件名 运行的结果是新的 log文件确实产生了,但是日志记录并不能写入进去,加之年代久远,也就没有跟原作者讨论的激情了 后来

Flask log配置,实现按照日期自动生成日志文件

Flask自带了logger模块,用来方便程序员群众记录日志,这里粘贴出来的是一段代码,用来初始化日志各项配置参数,并根据日期自动生成日志文件. #log配置,实现日志自动按日期生成日志文件def make_dir(make_dir_path): path = make_dir_path.strip() if not os.path.exists(path): os.makedirs(path) return pathlog_dir_name = "logs"log_file_name

linux之使用cron,logrotate管理日志文件

1) logrotate配置   logrotate 程序是一个日志文件管理工具.用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”.   我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行.   logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail . logrotate 的配置文件是 /etc/logrotate.conf  主要参数如下表: 参数                         功能   co

InnoDB存储引擎的表空间文件,重做日志文件

存储引擎文件:因为MySQL表存储引擎的关系,每个存储引擎都会有自己的文件来保存各种数据.这些存储引擎真正存储了数据和索引等数据. 表空间文件 InnoDB存储引擎在存储设计上模仿了Oracle,将存储的数据按表空间进行存放.默认配置下,会有一个初始化大小为10MB.名为ibdata1的文件.该文件就是默认的表空间文件(tablespace file).你可以通过参数innodb_data_file_path对其进行设置.格式如下: innodb_data_file_path=datafile_