Log4j主要组件:

1、根类别(在类别层次结构的顶部,即全局性的日志级别)

配置根Logger,其语法为:

log4j.rootLogger = [level] , appenderName, appenderName, ...

level 是日志记录的类别

appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

类别level 为 OFF、FATAL、ERROR、WARN、INFO、DEBUG、log、ALL或自定义的优先级。

og4j常用的优先级FATAL>ERROR>WARN>INFO>DEBUG

配置根Logger,其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName, …

如果为log4j.rootLogger=WARN,则意味着只有WARN,ERROR,FATAL被输出,DEBUG,INFO将被屏蔽掉。

举例:log4j.rootCategory=INFO,stdout,Runlog,Errorlog

根日志类别为INFO,DEBUG将被屏蔽,其他的将被输出。 stdout,Runlog,Errorlog分别为3个输出目的地。

2、常用输出格式

%c:列出logger名字空间的全称,如果加上{}表示列出从最内层算起的指定层数的名字空间.假设当前logger名字空间是"a.b.c"

%c a.b.c

%c{2} b.c

%20c (若名字空间长度小于20,则左边用空格填充)

%-20c (若名字空间长度小于20,则右边用空格填充)

%.30c (若名字空间长度超过30,截去多余字符)

%20.30c (若名字空间长度小于20,则左边用空格填充;若名字空间长度超过30,截去多余字符)

%-20.30c (若名字空间长度小于20,则右边用空格填充;若名字空间长度超过30,截去多余字符)

%C:列出调用logger的类的全名(包含包路径) .假设当前类是"org.apache.xyz.SomeClass"

%C org.apache.xyz.SomeClass

%C{1} SomeClass

%d:显示日志记录时间,{}使用ISO8601定义的日期格式

%d{yyyy/MM/dd HH:mm:ss,SSS} 2005/10/12 22:23:30,117

%d{ABSOLUTE} 22:23:30,117

%d{DATE} 12 Oct 2005 22:23:30,117

%d{ISO8601} 2005-10-12 22:23:30,117

%F:显示调用logger的源文件名

%F MyClass.java

%l:输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数

%l MyClass.main(MyClass.java:129)

%L:显示调用logger的代码行

%L 129

%m:显示输出消息

%m This is a message for debug.

%M:显示调用logger的方法名

%M main

%n:当前平台下的换行符

%n Windows平台下表示rn UNIX平台下表示n

%p:显示该条日志的优先级

%p INFO

%r:显示从程序启动时到记录该条日志时已经经过的毫秒数

%r 1215

%t:输出产生该日志事件的线程名

%t MyClass

%x:按NDC(Nested Diagnostic Context,线程堆栈)顺序输出日志.假设某程序调用顺序是MyApp调用com.foo.Bar

%c %x - %m%n MyApp - Call com.foo.Bar. com.foo.Bar - Log in Bar

MyApp - Return to MyApp.

%X:按MDC(Mapped Diagnostic Context,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。

%X{5} (记录代号为5的客户端的日志)

%%:显示一个百分号

%% %

-X号:X信息输出时左对齐;

%p:日志信息级别

%d{}:日志信息产生时间

%c:日志信息所在地(类名)

%m:产生的日志具体信息

%n:输出日志信息换行

举例:

log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n

3、布局

使用的输出布局,其中log4j提供4种布局:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(可以灵活地指定布局模式),

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

举例:

输出格式为HTML表格log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout

输出格式为可以灵活地指定布局模式

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

输出格式为包含日志信息的级别和信息字符串

log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

输出格式为包含日志产生的时间、线程、类别等等信息

log4j.appender.stdout.layout=org.apache.log4j.TTCCLayout

4、目的地

配置日志信息输出目的地Appender,其语法为

log4j.appender.appenderName = fully.qualified.name.of.appender.class

log4j.appender.appenderName.option1 = value1

...

log4j.appender.appenderName.option = valueN

appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

log4j支持的输出目的地:

org.apache.log4j.ConsoleAppender 控制台

org.apache.log4j.FileAppender 文件

org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件

org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件),

org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

org.apache.log4j.net.SMTPAppender 邮件

org.apache.log4j.jdbc.JDBCAppender 数据库

其他如:GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等

举例:

输出到控制台

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender(指定输出到控制台)

log4j.appender.Threshold=DEBUG(指定输出类别)

log4j.appender.CONSOLE.Target=System.out

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout(指定输出布局)

log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(指定输出格式)

输出到文件

log4j.appender.FILE=org.apache.log4j.FileAppender(指定输出到文件)

log4j.appender.FILE.File=file.log(指定输出的路径及文件名)

log4j.appender.FILE.Append=false

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout(指定输出的布局)

log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(指定输出的格式)

输出到文件(轮换"日志文件",当日志文件达到指定大小时,该文件就被关闭并备份,然后创建一个新的日志文件)

log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender(指定输出到文件)

log4j.appender.ROLLING_FILE.Threshold=ERROR(指定输出类别)

log4j.appender.ROLLING_FILE.File=rolling.log(指定输出的路径及文件名)

log4j.appender.ROLLING_FILE.Append=true

log4j.appender.ROLLING_FILE.MaxFileSize=10KB(指定输出到文件的大小)

log4j.appender.ROLLING_FILE.MaxBackupIndex=1

log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout(指定采用输出布局)

log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(指定采用输出格式)

输出到Socket

log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender(指定输出到Socket)

log4j.appender.SOCKET.RemoteHost=localhost(远程主机)

log4j.appender.SOCKET.Port=5001(远程主机端口)

log4j.appender.SOCKET.LocationInfo=true

log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout(布局)

log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE} [DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n(输出格式)

输出到邮件

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender(指定输出到邮件)

log4j.appender.MAIL.Threshold=FATAL

log4j.appender.MAIL.BufferSize=10

log4j.appender.MAIL.From=chenyl@hollycrm.com(发件人)

log4j.appender.MAIL.SMTPHost=mail.hollycrm.com(SMTP服务器)

log4j.appender.MAIL.Subject=Log4J Message

log4j.appender.MAIL.To=chenyl@hollycrm.com(收件人)

log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout(布局)

log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(格式)

输出到数据库

log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender(指定输出到数据库)

log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test(指定数据库URL)

log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver(指定数据库driver)

log4j.appender.DATABASE.user=root(指定数据库用户)

log4j.appender.DATABASE.password=root(指定数据库用户密码)

log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')(组织SQL语句)

log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout(布局)

log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(格式)

5、日志类别补充

有时我们需要对某个特定的部分指定有别于根类别的日志类别,可以指定某个包的优先级

如:

log4j.category.com.neusoft.mbip.dm.util=ERROR ,其中com.neusoft.mbip.dm.util为我们需要特别指定日志类别的部分。

或者可以指定输出文件的优先级

log4j.appender.Errorlog.Threshold=ERROR

三、 常用log4j配置

常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:

1、log4j.properties

### 设置org.zblog域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2 ##

log4j.category.org.zblog=ERROR,A1

log4j.category.org.zblog=INFO,A2

log4j.appender.A1=org.apache.log4j.ConsoleAppender

### 设置输出地A1,为ConsoleAppender(控制台) ##

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

### 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)##

log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

### 配置日志输出的格式##

log4j.appender.A2=org.apache.log4j.RollingFileAppender

### 设置输出地A2到文件(文件大小到达指定尺寸的时候产生一个新的文件)##

log4j.appender.A2.File=E:/study/log4j/zhuwei.html

### 文件位置##

log4j.appender.A2.MaxFileSize=500KB

### 文件大小##

log4j.appender.A2.MaxBackupIndex=1

log4j.appender.A2.layout=org.apache.log4j.HTMLLayout

##指定采用html方式输出

log4j 打印线程号配置_log4j配置参数相关推荐

  1. log4j 打印线程号配置_日志配置log4j 打印线程号

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # Set root logger level to WARN and a ...

  2. log4j 打印线程号配置_Log4J日志整合及配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  3. java的log4j的xml配置_Log4j配置实例(log4j.xml)

    一个完整的xml配置文件(propertities文件功能不全,不能使用过滤器,并且个人认为xml格式比较清晰,易读). 附带测试程序. Java代码 importjava.net.URL; impo ...

  4. log4j打印出线程号和方法名

    最近写了一些Java多线程的程序,学到log4j打印出线程号和方法名,分享一下~ 使用 %t 就可以打印线程名称,这样开发的时候就可以看到线程执行情况了: 先参考实现配置,如果想要更加详细的配置,可加 ...

  5. 线程池基本了解及其参数配置

    前言 在面试的过程中,总会说:谈谈你对线程池的理解. 什么是线程池? 线程池有什么优势? 如何创建线程池? 线程池的参数配置是什么? 常用线程分类有什么? 为此,做一个总结.巩固我那薄弱的知识. 什么 ...

  6. mybatis配置log4j打印sql日志

    mybatis配置log4j打印sql日志 前提是你已经配置好了log4j. 在mybatis的配置文件中设置 <?xml version="1.0" encoding=&q ...

  7. log4j 源码解析_Log4j配置详解

    log4j.rootLogger=INFO,consoleAppender,logfile,errorlogfile log4j.addivity.org.apache=true #文件输出:Roll ...

  8. 项目构建之springboot集成lomback.xml,和log4j基于properties方式的日志配置记录

    文章目录 springboot集成lomback.xml 描述 在yml中定义的一些配置信息 创建logback-spring.xml文件 logback-spring.xml配置如下: **log4 ...

  9. linux activemq 日志,log4j通过ActiveMQ远程记录日志设计配置

    log4j通过activeMQ远程记录日志设计配置 一.安装ActiveMQ 首先去http://activemq.apache.org/download.html 下载较新版本5.4.2releas ...

最新文章

  1. Java 理论与实践: 非阻塞算法简介——看吧,没有锁定!(转载)
  2. 《易学Python》——1.4 Linux
  3. OpenGL HDR渲染
  4. ubuntu 网卡突然无法连接
  5. 【HDU - 1867 】A + B for you again(KMP,next数组应用)
  6. 1核2G云服务器 标准型S4 S5,腾讯云服务器标准型S4和S5配置性能参数区别及选择攻略...
  7. 李开复的 给创新工场求职者的一封信
  8. 大数据营销平台该如何选择
  9. 封装JedisClient.提供API实现对redis的操作
  10. 拓端tecdat|电力消耗模型构建、分析和预测
  11. 自己动手写操作系统2011040101
  12. SuperMap iDesktop之夜景特效制作
  13. 正运动技术快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门
  14. 硬件设计1---什么是硬件工程师?
  15. oc引导windows蓝屏_电脑蓝屏你别怕,黑客教你代码查看问题
  16. 如何利用碎片化时间形成知识体系
  17. 大一高数下册笔记整理_大学高等数学知识点整理(全)
  18. 【云原生 • Docker】Docker常用命令总结(值得收藏)
  19. 你想玩物联网开发板吗?和我一起学习啊
  20. 电子商务经过了十多年的发展 企业建站网站与域名选择的重要性

热门文章

  1. 牛人推荐的跨浏览器兼容性总结
  2. IT团队如何安全地加速云计算的采用
  3. 云计算平台中虚拟专用网和VPC有什么区别?
  4. 软体定义网路(SDN)的多重意义
  5. 信息技术专业常用协议指什么?
  6. Loadrunner无法打开浏览器的相关问题
  7. 将spark默认日志log4j替换为logback
  8. javascript的null 和undifined
  9. ios之开发屏幕适配和系统版本适配(转载)
  10. 一年的收益就是60% 熊市也能做到 股票花荣实战系统