log4j配置文件有三个主要的组件:Logger,Appender和Layout,分别为日志类型,日志输出目的地,日志输出格式。

1. 配置日志级别及appenderName

log4j.rootLogger=[level],console,debugFileAppender,errorFileAppender,...

注:其中 [level] 是日志输出级别:FATAL、ERROR、WARN、INFO、DEBUG 五个级别,通过定义的级别,你可以控制程序中的日志输出,例:如果定义了ERROR级别,程序中只有FARAL、ERROR 级别的 log 会被输出。

  • FATAL:致命错误。
  • ERROR:严重错误,主要是程序的错误。
  • WARN:一般警告,比如session丢失。
  • INFO:一般要显示的信息,比如登录退出。
  • DEBUG:程序的调试信息。

2. Log4j提供的输出目的地有以下几种:

log4j.appender.appenderName= 输出目的地 (这里的appenderName是在前面定义的,可任意起名)

  • org.apache.log4j.ConsoleAppender(控制台)
  • org.apache.log4j.FileAppender(文件)
  • org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
  • org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
  • org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

3. 配置布局类型

log4j.appender.appenderName.layout = 布局类型(设置布局类型)

Log4j提供的layout有以下4种:

  • org.apache.log4j.HTMLLayout(以HTML表格形式布局)
  • org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
  • org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
  • org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

4. 配置符号所代表的含义:log4j.appender.根.layout.ConversionPattern=

  • %p:输出日志信息的优先级,即FATAL、ERROR、WARN、INFO、DEBUG。
  • %d:输出日志日期或时间,默认格式为ISO8601,也可以在其后指定格式。例:%d{yyyy MMM dd HH:mm:ss,SSS},输出:2000年01月01日 00:00:10,000
  • %c:输出日志信息所属的类目,通常就是所在类的全名。
  • %F:输出日志消息产生时所在的文件名称
  • %L:输出代码中的行号。
  • %l:输出日志事件的发生位置,包括全类名方法名、发生的线程,以及在代码中的行号,相当于%c(%F:%L)的组合,但这个组合不包括方法名。例:cn.xiwh.test.Testlog4j.main(TestLog4j.java:10)
  • %m:输出代码中指定产生的日志的具体信息。
  • %n:输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行。
  • %r:输出自应用启动到输出该log信息耗费的毫秒数。
  • %t:输出产生该日志事件的线程名。
  • %x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
  • %%:输出一个"%"字符。
  • [QC]:是log信息的开头,可以为任意字符,一般为项目简称。
  • -X号:X信息输出时左对齐。

可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、及文本的对齐方式。例:

1). %20c:指定输出类的名称,最小的宽度是20,如果类的名称小于20,默认的情况下右对齐。

2). %-20c:指定输出类的名称,最小的宽度是20,如果类的名称小于20,"-"号指定左对齐。

3). %.30c:指定输出类的名称,最大的宽度是30,如果类的名称大于30就会将左边多出的字符截掉,但小于30也不会有空格。

4). %20.30c:如果类的名称小于20就补空格并且右对齐,如果其名称大于30就从左边较远输出的字符截掉。

5. 配置文件 log4j.properties

### 配置日志级别及appenderName ###
log4j.rootLogger=error,console,debugFileAppender,errorFileAppender,dailyRollingFile,rollingFile,mail ### 配置输出信息到控制抬 ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
#默认值是System.out,指定输出控制台。
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss,SSS}] method:%l%n%m%n ### 配置输出DEBUG级别以上的日志文件到> D://logs/debug.log ###
log4j.appender.debugFileAppender=org.apache.log4j.FileAppender
log4j.appender.debugFileAppender.File=D://logs/debug.log
log4j.appender.debugFileAppender.Append=true
log4j.appender.debugFileAppender.Threshold=DEBUG
log4j.appender.debugFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.debugFileAppender.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 配置输出ERROR级别以上的日志文件到> D://logs/error.log ###
log4j.appender.errorFileAppender=org.apache.log4j.FileAppender
log4j.appender.errorFileAppender.File=D://logs/error.log
log4j.appender.errorFileAppender.Append=true
log4j.appender.errorFileAppender.Threshold=ERROR
log4j.appender.errorFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.errorFileAppender.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 配置输出DEBUG级别以上的日志文件到> D://logs/debug.log 并且每天都创建一个文件 ###
log4j.appender.dailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyRollingFile.File=D://logs/debug.log
log4j.appender.dailyRollingFile.Append=true
log4j.appender.dailyRollingFile.Threshold=DEBUG
log4j.appender.dailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyRollingFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 配置输出DEBUG级别以上的日志文件到> D://logs/debugRolling.log 且大小到达指定尺寸的时候产生一个新的文件 ###
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
#指定消息输出到> D://logs/debugRolling.log文件
log4j.appender.rollingFile.File=D://logs/debugRolling.log
#默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
log4j.appender.rollingFile.Append=true
#指定日志消息的输出最低层次
log4j.appender.rollingFile.Threshold=DEBUG
#后缀可以是KB、MB或者是GB,在日志文件到达该大小时,将会自动滚动,即将原来的内容移到debug.log.1文件。
log4j.appender.rollingFile.MaxFileSize=10KB
#指定可以产生的滚动文件的最大数
log4j.appender.rollingFile.MaxBackupIndex=1
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n ### 配置输出到邮件 ###
log4j.appender.mail=org.apache.log4j.net.SMTPAppender
# 日志的错误级别
log4j.appender.mail.Threshold=DEBUG
# 缓存文件大小,日志达到10K时发送Email
log4j.appender.mail.BufferSize=10
# 发送邮件的服务器
log4j.appender.mail.SMTPHost=smtp.163.com
# 邮件的标题
log4j.appender.mail.Subject=Log4J DebugMessage
# 邮箱地址
log4j.appender.mail.SMTPUsername=test@163.com
# 密码
log4j.appender.mail.SMTPPassword=test
# 发件人
log4j.appender.mail.From=test@163.com
# 收件人
log4j.appender.mail.To=receive@163.com
# 日志PatternLayout
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
# 日志的格式
log4j.appender.mail.layout.ConversionPattern=[DebugMessage] %d - %c -%-4r [%t] %-5p %c %x - %m%n

log4j.properties配置文件及详解的更多相关文章

  1. log4j.properties 的使用详解

    一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失IN ...

  2. log4j.properties的配置详解

    log4j.rootLogger=ERROR,A1log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout= ...

  3. (转)log4j(六)——log4j.properties试过过程详解

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 参考:https://www.cnblogs.com/ywlaker/p/6124067.html log4j基本用法 首 ...

  4. log4j.properties配置及详解

    log4j.properties文件配置: log4j.rootLogger = debug,console log4j.appender.console = org.apache.log4j.Con ...

  5. spring boot 配置文件properties和YAML详解

    spring boot 配置文件properties和YAML详解 properties中配置信息并获取值. 1:在application.properties配置文件中添加: 根据提示创建直接创建. ...

  6. log4j配置文件位置详解

    自动加载配置文件: (1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解.log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找lo ...

  7. java 日志体系(三)log4j从入门到详解

    java 日志体系(三)log4j从入门到详解 一.Log4j 简介 在应用程序中添加日志记录总的来说基于三个目的: 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: 跟踪代 ...

  8. ssh2的application.xml配置文件配置详解

    ssh2的application.xml配置文件配置详解   1.导入其他的配置文件.在ssh项目中可以导入其他的配置文件,导入的格式为: <import resource="clas ...

  9. MySQL-5.5.32 配置文件优化详解

    目录 MySQL-5.5.32 配置文件优化详解 一.配置文件说明 2.my-medium.cnf 3.my-large.cnf 4.my-huge.cnf 5.my-innodb-heavy-4G. ...

随机推荐

  1. 浅谈MVC设计模式

    摘要:MVC即Model.View.Controller即模型.视图.控制器,它是用一种业务逻辑.数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用 ...

  2. [刘阳Java]_第一个Java程序_第7讲

    1. 其实第一个Java程序是很简单,但是当自己编写第一个Java程序时候需要注意如下几个内容: 理解Java程序的运行环境 校验你的Java环境变量是否能够运行你所写的第一个Java程序 理解Jav ...

  3. Kubernetes部署-RKE自动化部署

    一.简介 RKE:Rancher Kubernetes Engine 一个极其简单,闪电般快速的Kubernetes安装程序,可在任何地方使用. 二.准备工作 I.配置系统 系统:CentOS 7 / ...

  4. [SHOI2014]概率充电器 题解

    注意到本题的贡献是不带权的,所以期望其实就是每个点的概率之和. 本题正着做好像不是很好做,要考虑 \(P(A+B)=P(A)+P(B)-P(A)P(B)\) 的容斥(因为这是两个条件至少满足一个,所以 ...

  5. POJ3179 Corral the Cows题解

    我就是个垃圾--一道水题能写这么长时间-- 首先看到题就想到了二维前缀和+二分边长,但地图边长10000,得离散化. 于是这个离散化就把我搞疯了,淦. 这反映出现在基础知识还是不牢固,相当不牢固. 复 ...

  6. odoo12里定时任务

    以odoo12为例: 1. 定义定时任务属性 <record id="ir_cron_submit_auto_action" model="ir.cron" ...

  7. 第十篇 -- 学习C++宝典2005版

    最近看了C++宝典,看时间是2005的,对于里面的程序自己也进行了编写,由于时间过久,可能有些函数的用法发生了改变,自己也对其进行了修改,用VS2017可以编译通过. 前四章学习内容 CPlusPlu ...

  8. kubernetes/k8s CRI分析-容器运行时接口分析

    关联博客:kubernetes/k8s CSI分析-容器存储接口分析 概述 kubernetes的设计初衷是支持可插拔架构,从而利于扩展kubernetes的功能.在此架构思想下,kubernetes ...

  9. 云平台制作(1)-OPC Client取数模块的制作

    近来由于工程需要,基于OPC DA 2.0搭建通用的取数模块,与远程webscoket服务端连接,并传输数据.在网上找了些资料,修改相应网友公开的源代码,基本达到要求,特供大家参考. 1.实体类 us ...

  10. 只是想虐下春丽,一不当心玩了下serverless...感觉还不错哟!

    事情是这样的-- 前天下午天太热,我在家看电视,换台突然就看到了正在播<西游记>,窗外蝉声特别响,我一下就有种穿越回小学暑假的感觉.当时,我就特别想把我那台小霸王翻出来,玩两盘街霸--虐一 ...