Log4日志配置(转)

2024-05-26 16:32
文章标签 配置 日志 log4

本文主要是介绍Log4日志配置(转),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2010-10-19 19:44:23|  分类: .NET |  标签: |字号 订阅

Log4日志组件的应用确实简单实用,在比较了企业库和Log4的日志功能后,个人觉得Log4的功能更加强大点.补充说明下,我使用的企业库是2.0版本,Log4net是1.2.1版本的.

在Log4net的应用上,已经有人做了说明分析了,在本文中,主要解析下Log4net中的RollingFileAppender的应用.

主要参考了Log4net的帮助文档.在项目中的log4net-1.2.10\doc文件下有.


RollingFileAppender主要是基于FileAppender构建的,很多属性方法都是继承于FileAppender,所以在选项设置上,也有许多是相同的.

下面的例子使日志文件名为log.txt,日志文件名是以文件大小进行变换的,如果旧日志文件大小到100KB时,就会变换文件名为log.txt.1,log.txt.2,log.txt.3...,一直到10为止

  1. <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">  
  2.         <!--日志文件名-->
  3.     <file value="log.txt"/>
  4.     <!--是否在文件中追加-->
  5.     <appendToFile value="true"/>
  6.     <!--按照文件的大小进行变换日志文件-->
  7.     <rollingStyle value="Size"/>
  8.     <!--最大变换数量-->
  9.     <maxSizeRollBackups value="10"/>
  10.     <!--最大文件大小-->
  11.     <maximumFileSize value="100KB"/>
  12.     <!--日志文件名是否为静态-->
  13.     <staticLogFileName value="true"/>
  14.     <layout type="log4net.Layout.PatternLayout">
  15.         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline"/>
  16.     </layout>
  17. </appender>

下面的例子以时间周期变换日志文件名,每分钟都改变日志的文件名,日志文件名为logfileyyyyMMdd-HHmm,这里补充说明下,如果要在这个文件名后面加上.log后缀,必须使用转义字符,比如<datePattern value="yyyyMMdd-HHmm&quot;.log&quot;" />

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2.         <!--日志文件名开头-->
  3.     <file value="logfile" />
  4.     <!--是否追加到文件-->
  5.     <appendToFile value="true" />
  6.     <!--变换的形式为日期-->
  7.     <rollingStyle value="Date" />
  8.     <!--日期的格式-->
  9.     <datePattern value="yyyyMMdd-HHmm" />
  10.     <layout type="log4net.Layout.PatternLayout">
  11.         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
  12.     </layout>
  13. </appender>

下面的例子综合使用使用日期和文件大小变换日志文件名。

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2.     <!--日志文件名开头-->
  3.     <file value="logfile" />
  4.     <!--是否追加到文件-->
  5.     <appendToFile value="true" />
  6.     <!--混合使用日期和文件大小变换日志文件名-->
  7.     <rollingStyle value="Composite" />
  8.     <!--日期的格式-->
  9.     <datePattern value="yyyyMMdd" />
  10.     <!--最大变换数量-->
  11.     <maxSizeRollBackups value="10" />
  12.     <!--最大文件大小-->
  13.     <maximumFileSize value="1MB" />
  14.     <layout type="log4net.Layout.PatternLayout">
  15.         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
  16.     </layout>
  17. </appender>

下面例子是在每次程序运行的时候,都会备份原先的日志文件,当运行的日志文件大于50G的时候才会变换日志文件名。

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2.     <!--日志文件名-->
  3.     <file value="logfile.txt" />
  4.     <!--不追加到原文件-->
  5.     <appendToFile value="false" />
  6.     <!--以日志文件大小变换文件名-->
  7.     <rollingStyle value="Size" />
  8.     <!--最大变换数量,-1为不限制-->
  9.     <maxSizeRollBackups value="-1" />
  10.     <!--最大文件大小-->
  11.     <maximumFileSize value="50GB" />
  12.     <layout type="log4net.Layout.PatternLayout">
  13.         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
  14.     </layout>
  15. </appender>

下面是RollingFileAppender类中的部分Public Instance Properties(公共属性)的说明,没有全部测试,难免谬误,如果你知道,请不要吝啬告写。
CountDirection : 定义当前文件是最小编号的文件还是最大编号的文件。默认为-1,总是以更小的编号。
datePattern : DateFormatter日期格式,string类型。
Encoding : 就是文件的编码,默认为Default,就是程序本身的编码了。
FilterHead : 分割符头部。
ImmediateFlush : 表示是否立即输出到文件,布尔型的。
LockingModel : 文件锁类型,RollingFileAppender本身不是线程安全的,如果在程序中没有进行线程安全的限制,可以在这里进行配置,确保写入时的安全。有两中类型:FileAppender.ExclusiveLockFileAppender.MinimalLock
Name
: 设置本Appander的名称。
SecurityContext : 比较少应用,对日志进行加密只类的,使用SecurityContextProvider转换。(对日志的保密要求比较高的时候应该可以应用上吧,Log4考虑的还挺周全)
Threshold : 设置内容级别的,比如:DEBUG,INFO等等。

 

在Log4net的配置中有两种方法是等价的:
<param name="File" value="log.txt" />
<File value="log.txt" />
个人更倾向后者。在一些数据库上的应用时还有许多Param呢。

 

追加:懒人ABC使用后的一些例子

组件的应用确实简单实用,在比较了企业库和Log4的日志功能后,个人觉得Log4的功能更加强大点.补充说明下,我使用的企业库是2.0版本,Log4net是1.2.1版本的.

在Log4net的应用上,已经有人做了说明分析了,在本文中,主要解析下Log4net中的RollingFileAppender的应用.

主要参考了Log4net的帮助文档.在项目中的log4net-1.2.10\doc文件下有.


RollingFileAppender主要是基于FileAppender构建的,很多属性方法都是继承于FileAppender,所以在选项设置上,也有许多是相同的.

下面的例子使日志文件名为log.txt,日志文件名是以文件大小进行变换的,如果旧日志文件大小到100KB时,就会变换文件名为log.txt.1,log.txt.2,log.txt.3...,一直到10为止

  1. <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">  
  2.         <!--日志文件名-->
  3.     <file value="log.txt"/>
  4.     <!--是否在文件中追加-->
  5.     <appendToFile value="true"/>
  6.     <!--按照文件的大小进行变换日志文件-->
  7.     <rollingStyle value="Size"/>
  8.     <!--最大变换数量-->
  9.     <maxSizeRollBackups value="10"/>
  10.     <!--最大文件大小-->
  11.     <maximumFileSize value="100KB"/>
  12.     <!--日志文件名是否为静态-->
  13.     <staticLogFileName value="true"/>
  14.     <layout type="log4net.Layout.PatternLayout">
  15.         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline"/>
  16.     </layout>
  17. </appender>

下面的例子以时间周期变换日志文件名,每分钟都改变日志的文件名,日志文件名为logfileyyyyMMdd-HHmm,这里补充说明下,如果要在这个文件名后面加上.log后缀,必须使用转义字符,比如<datePattern value="yyyyMMdd-HHmm&quot;.log&quot;" />

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2.         <!--日志文件名开头-->
  3.     <file value="logfile" />
  4.     <!--是否追加到文件-->
  5.     <appendToFile value="true" />
  6.     <!--变换的形式为日期-->
  7.     <rollingStyle value="Date" />
  8.     <!--日期的格式-->
  9.     <datePattern value="yyyyMMdd-HHmm" />
  10.     <layout type="log4net.Layout.PatternLayout">
  11.         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
  12.     </layout>
  13. </appender>

下面的例子综合使用使用日期和文件大小变换日志文件名。

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2.     <!--日志文件名开头-->
  3.     <file value="logfile" />
  4.     <!--是否追加到文件-->
  5.     <appendToFile value="true" />
  6.     <!--混合使用日期和文件大小变换日志文件名-->
  7.     <rollingStyle value="Composite" />
  8.     <!--日期的格式-->
  9.     <datePattern value="yyyyMMdd" />
  10.     <!--最大变换数量-->
  11.     <maxSizeRollBackups value="10" />
  12.     <!--最大文件大小-->
  13.     <maximumFileSize value="1MB" />
  14.     <layout type="log4net.Layout.PatternLayout">
  15.         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
  16.     </layout>
  17. </appender>

下面例子是在每次程序运行的时候,都会备份原先的日志文件,当运行的日志文件大于50G的时候才会变换日志文件名。

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2.     <!--日志文件名-->
  3.     <file value="logfile.txt" />
  4.     <!--不追加到原文件-->
  5.     <appendToFile value="false" />
  6.     <!--以日志文件大小变换文件名-->
  7.     <rollingStyle value="Size" />
  8.     <!--最大变换数量,-1为不限制-->
  9.     <maxSizeRollBackups value="-1" />
  10.     <!--最大文件大小-->
  11.     <maximumFileSize value="50GB" />
  12.     <layout type="log4net.Layout.PatternLayout">
  13.         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
  14.     </layout>
  15. </appender>

下面是RollingFileAppender类中的部分Public Instance Properties(公共属性)的说明,没有全部测试,难免谬误,如果你知道,请不要吝啬告写。
CountDirection : 定义当前文件是最小编号的文件还是最大编号的文件。默认为-1,总是以更小的编号。
datePattern : DateFormatter日期格式,string类型。
Encoding : 就是文件的编码,默认为Default,就是程序本身的编码了。
FilterHead : 分割符头部。
ImmediateFlush : 表示是否立即输出到文件,布尔型的。
LockingModel : 文件锁类型,RollingFileAppender本身不是线程安全的,如果在程序中没有进行线程安全的限制,可以在这里进行配置,确保写入时的安全。有两中类型:FileAppender.ExclusiveLockFileAppender.MinimalLock
Name
: 设置本Appander的名称。
SecurityContext : 比较少应用,对日志进行加密只类的,使用SecurityContextProvider转换。(对日志的保密要求比较高的时候应该可以应用上吧,Log4考虑的还挺周全)
Threshold : 设置内容级别的,比如:DEBUG,INFO等等。

 

在Log4net的配置中有两种方法是等价的:
<param name="File" value="log.txt" />
<File value="log.txt" />
个人更倾向后者。在一些数据库上的应用时还有许多Param呢。

这篇关于Log4日志配置(转)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1004992

相关文章

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的