Log4J 配置文件模板及代码说明
相对而言,这个日志系统的配置就没那么随意了,而且有些功能用起来也不是那么爽,譬如动态读取配置文件。不过鉴于使用这个日志的系统还是很多,所以也写一个demo贴出来,风格跟log4j2一样,配置的说明全在代码里。
ps:此处只使用xml方式来配置,个人觉着properties方式不是很友好,理解起来没xml容易。
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
- <log4j:configuration>
- <!--
- 日志信息的输出目的地(Appender):
- org.apache.log4j.ConsoleAppender(控制台)
- org.apache.log4j.FileAppender(文件)
- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
- org.apache.log4j.jdbc.JDBCAppender(将日志信息写到数据库里)
- 日志信息的输出格式(Layout):
- org.apache.log4j.HTMLLayout(HTML表格形式)
- org.apache.log4j.PatternLayout(通过表达式指定格式)
- org.apache.log4j.SimpleLayout(仅仅包含日志信息的级别和信息的简单字符串)
- org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
- 表达式详解(类似于C语言):
- %m 输出代码中指定的消息
- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
- %r 输出自应用启动到输出该log信息耗费的毫秒数
- %c 输出所属的类目,通常就是所在类的全名
- %t 输出产生该日志事件的线程名
- %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
- %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
- %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
- %%: 输出一个”%”字符 %F: 输出日志消息产生时所在的文件名称
- %L: 输出代码中的行号
- %m: 输出代码中指定的消息,产生的日志具体信息
- %n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。
- -->
- <!--控制台输出-->
- <appender name="console" class="org.apache.log4j.ConsoleAppender">
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
- </layout>
- </appender>
- <!--日志输出到文件中-->
- <!--每天产生一个文件-->
- <appender name="info" class="org.apache.log4j.DailyRollingFileAppender">
- <!-- 地址和文件名 -->
- <param name="File" value="logs/cnblog.log"/>
- <!--自动追加-->
- <param name="Append" value="true"/>
- <!--输出文件的最大长度,默认是10M-->
- <param name="MaxFileSize" value="2MB"/>
- <!--备份文件数,默认是1个-->
- <param name="MaxBackupIndex" value="30"/>
- <!--布局模式-->
- <layout class="org.apache.log4j.PatternLayout">
- <!--输出模式-->
- <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
- </layout>
- </appender>
- <appender name="error" class="org.apache.log4j.FileAppender">
- <param name="File" value="logs/cnblog-error.log"/>
- <param name="Append" value="true"/>
- <param name="MaxFileSize" value="2MB"/>
- <!--定义局部输出级别-->
- <param name="Threshold" value="ERROR"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
- </layout>
- <!--过滤器设置输出的级别-->
- <filter class="org.apache.log4j.varia.LevelRangeFilter">
- <param name="levelMin" value="ERROR"/>
- <param name="levelMax" value="WARN"/>
- <param name="AcceptOnMatch" value="true"/>
- </filter>
- </appender>
- <!--输出到数据库-->
- <appender name="database" class="org.apache.log4j.jdbc.JDBCAppender">
- <param name="URL" value="jdbc:mysql://localhost:3306/test?serverTimezone=UTC"/><!-- mysql6版必须设置时区 -->
- <param name="driver" value="com.mysql.jdbc.Driver"/>
- <param name="user" value="user"/>
- <param name="password" value="password"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern"
- value="INSERT INTO tb_log (create_date,thread,level,class,message) values ('%d{yyyy-MM-dd HH:mm:ss}','%t','%p','%c','%m')"/>
- </layout>
- </appender>
- <!--level:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL-->
- <root>
- <!--定义全局的日志输出级别,但是在输出目的地的配置中配置的具体输出级别优先级高于全局定义的优先级。-->
- <priority value="DEBUG"/>
- <appender-ref ref="console"/>
- <appender-ref ref="info"/>
- <appender-ref ref="warn"/>
- <appender-ref ref="database"/>
- </root>
- </log4j:configuration>
appender可根据自己的业务需求来添加,log4j内容很多,这里只列出一些常用的,其他的自行官档。
===========================习惯性版本分割===========================
Log4J 配置文件模板及代码说明的更多相关文章
- Log4J2 配置文件模板及代码说明
Log4j是Apache的著名项目,随着Java应用的越来越广泛,对日志性能等方面的要求也越来越高.Log4j的升级版本Log4j2在前些年发布.Log4J2的优点和好处有很多,可以自行搜索查阅相关文 ...
- log4j 配置文件参数说明
log4j 框架配置文件常用参数说明 %d 时间(-- ::,) %-5p 日志级别(INFO/DEBUG) %10c 包名(com.xxx.xxx.business.logging) %M 执行的方 ...
- log4j - 配置文件
Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息. 通过配置,可以创建出Log4J的运行环 ...
- Log4J配置文件说明
Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...
- log4j配置文件详细解释
web.xml中配置启动log4j的配置 <!-- webAppRootKey进行配置,这里主要是让log能将日志写到对应项目根目录下 --> <!-- 定义以后,在Web Cont ...
- log4j配置文件详解---转
使用步骤注意: 1. 从http://logging.apache.org/log4j/1.2/ 下载文件 2. 在src目录下加入log4j.properties,将jar包放入build -pat ...
- Log4j配置文件位置+Spring数据源配置文件位置
一个.Log4j配置文件位置 1.加载自己主动 当应用程序启动,缺省情况下,这将是src文件夹搜索log4j.xml型材.如果不存在.我们将继续寻找log4j.properties文件,仅仅要找到当中 ...
- log4j配置文件详解(转)
Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...
- log4j配置文件简要记录
和大多数配置文件一样,log4j配置文件也有key-value形式和xml形式.这里主要记录一下key-value的形式 我们通过配置,可以创建出Log4j的运行环境.Log4j由三个重要的组件构成: ...
随机推荐
- C,C++面试题2
面试题1:变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明.一个变量可以在多个地方声明,但是只在一个地方定义.加入extern修饰的是变量的声明,说明此变量将在文件以 ...
- [修正] Firemonkey Windows 控件有虚线残影问题
说明:在 Wndows 显示时,有时控件左方会显示一条虚线 适用:Firemonkey Windows (Berlin 或更高版) 修正方法: 请将源码 FMX.Canvas.D2D.pas 复制到自 ...
- EF修改model自动更新数据库
最近用MVC+EF学习时遇到修改model后而数据库没更新报错,就在网上找关于数据迁移自动更新数据库的,折腾了大半天终于弄了出来 第一步:在程序包管理器控制台里: Enable-Migrations ...
- c# 跨线程访问窗体UI
定义个结构体用于存储线程中传递的参数信息 struct ImgInfo { public string url; public string path; }; 参数传递到线程中 ImgInfo img ...
- Spring Boot - Restful API
基本用法 @GetMapping与@PostMapping不指定参数时就是指直接使用到controller一级的url就行 @GetMapping与@PathVariable对应,前者{}中的字符串和 ...
- EntityFramework Code First 模式下使用数据迁移
启用数据迁移 在程序包管理控制台选择安装了EntityFramework的项目,键入如下指令以启EF用数迁移. Enable-Migrations 命令成功运行后,所选项目下会添加名为Migratio ...
- Windows上编译zlib
把zlib 1.2.8解压到zlib/zlib-1.2.8 在deflate.c文件中把deflate_copyright改成一个static变量. 在zlib目录底下创建并用Visual Studi ...
- cannot be resolved to a type (Java)
最近经常遇到cannot be resolved to a type (Java)报错,以下为在网上找到的解决方案: 1.先看看有没有引用相关jar包2.检查jar是否引用了多个相同的,或者多个jar ...
- 安全测试---AWVS简单安装介绍
使用AWVS对域名进行全局分析,深入探索: 首先,介绍一下AWVS这个工具. Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网 ...
- SpringMVC 的使用映射路径展示文件服务器上的图片
需求: 前端上传图片,返回路径给前端,前端通过路径来访问图片的资源. 解决方案: <mvc:resources mapping="/${mapping_path}/**" l ...