学习笔记:log4j.properties配置

示例:

 1 log4j.debug=true   
 2 log4j.rootLogger=DEBUG,stdout,D      //所有输出都会用到这里的appedder
 3 log4j.logger.com.test.server=DEBUG,E //为特定的的包指定输出
 4 //output log to console
 5 log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
 6 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout     
 7 log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  
 8 
 9 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
10 log4j.appender.E.File = logs/logs.log
11 log4j.appender.E.Append = true
12 log4j.appender.E.Threshold = DEBUG
13 log4j.appender.E.layout = org.apache.log4j.PatternLayout
14 log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
15 
16 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
17 log4j.appender.D.File = logs/error.log
18 log4j.appender.D.Append = true
19 log4j.appender.D.Threshold = ERROR
20 log4j.appender.D.layout = org.apache.log4j.PatternLayout
21 log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

log4j.properties的配置参数

1. 基本格式如下:

#配置根Logger
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …#配置日志信息输出目的地Appender
log4j.appender.appenderName  =  fully.qualified.name.of.appender.class log4j.appender.appenderName.option1  =  value1 … log4j.appender.appenderName.optionN  =  valueN #配置日志信息的格式(布局)
log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1  =  value1 … log4j.appender.appenderName.layout.optionN  =  valueN 

其中 [ level ]日志输出级别共有五级

  • FATAL 0
  • ERROR 3
  • WARN 4
  • INFO 6
  • DEBUG 7

Appender 为日志输出目的地,Log4j提供的appender有以下几种:

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

Layout:日志输出格式,Log4j提供的layout有以下几种:

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

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:

  • %m 输出代码中指定的消息%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  • %r 输出自应用启动到输出该log信息耗费的毫秒数
  • %c 输出所属的类目,通常就是所在类的全名
  • %t 输出产生该日志事件的线程名
  • %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
  • %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
  • %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:test.main(test.java: 10 )

2.参数意义说明
输出级别的种类

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

配置日志信息输出目的地

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

配置日志信息的格式

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

ConsoleAppender选项

  • Threshold=DEBUG:指定日志消息的输出最低层次。
  • ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
  • Target=System.err:默认情况下是:System.out,指定输出控制台

FileAppender 选项

  • Threshold=DEBUF:指定日志消息的输出最低层次。
  • ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
  • File=mylog.txt:指定消息输出到mylog.txt文件。
  • Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。

RollingFileAppender 选项

  • Threshold=DEBUG:指定日志消息的输出最低层次。
  • ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
  • File=mylog.txt:指定消息输出到mylog.txt文件。
  • Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
  • MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
  • MaxBackupIndex=2:指定可以产生的滚动文件的最大数。

日志信息格式中几个符号所代表的含义:

  • -X号: X信息输出时左对齐;
  • %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
  • %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
  • %r: 输出自应用启动到输出该log信息耗费的毫秒数
  • %c: 输出日志信息所属的类目,通常就是所在类的全名
  • %t: 输出产生该日志事件的线程名
  • %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
  • %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
  • %%: 输出一个"%"字符
  • %F: 输出日志消息产生时所在的文件名称
  • %L: 输出代码中的行号
  • %m: 输出代码中指定的消息,产生的日志具体信息
  • %n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行

 

转载于:https://www.cnblogs.com/lihezx/archive/2012/10/29/note-log4j-properties-configuration.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果

Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果 使用忍者飞镖创建粒子效果 游戏中,诸如烟、火、水滴、落叶等粒子效果,都可以使用粒子系统(particle system)来实现。例如,《明朝传奇》中的篝火,如图2-3…

“.NET研究”【Android开发教程】一、基础概念

Android操作系统 Android是一个基于Linux、使用java作为程序接口的操作系统。他提供了一些工具,比如编译器、调试器、还有他自己的仿真器(DVM — Dalvik Virtual Machine)。Android是由google领导的Open Handset Alliance开发的。 Android使用…

落在我手里,今天你能嫁出去算我输!

1 今天你能嫁出去算我输▼2 好像拍到了某些不可描述的画面▼3 猫猫:人呢?掉哪儿了?▼4 像极了下决心运动的你▼5 据最新研究欲火焚身这个词是很有科学依据的▼6 按这么说至少能保证说上话▼7 这不是普通狗仔了已经是海狗仔了▼你点的每…

mysql 5.6 slave stop_mysql 5.6 Replication 参数

花了一天的时间,看了mysql 5.6 Replication 章节内容,其中的一些参数做了一下笔记1:binlog_format 默认值是:statement有效值: ROW,基于行的复制STATEMENT 基于语句级别的复制MASTER_LOG_POS,MIXED 基于以上2种混合都有个各自的…

记一次 .NET 某资讯论坛 CPU爆高分析

大概有11天没发文了,真的不是因为懒,本想前几天抽空写,不知道为啥最近求助的朋友比较多,一天都能拿到2-3个求助dump,晚上回来就是一顿分析,有点意思的是大多朋友自己都分析了几遍或者公司多年的牛皮藓问题&…

内存调试技巧

内存调试技巧 2007 年 6 月 21 日 本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内。内存错误是 C 和 C 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决,它们可能严…

CSS中的!important属性用法

由于IE并不严格执行W3C标准, 而又几乎垄断了浏览器市场。 所以作为一名合格的网站制作人员, 必须要针对不同的浏览器进行微调。 实现不同浏览器之间兼容的方法有很多, 比如利用JS探测用户的浏览器类型,从而调用不同的样式表。 或者…

java中equals和==的区别

值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同&a…

数学课本上的几大变态之处

全世界只有3.14 % 的人关注了爆炸吧知识数学课本上的几大变态--完--

使用Redis set 解决数据的唯一性问题

前言最近遇到一个问题,就是接收第三方数据的时候,类似这种直播数据,由于业务的缘故,导致对方给的数据每次都是全量的,而且请求很频繁,有时候一秒好几十次。直播数据一般都是刷刷刷的,这个大家或…

mysql集群从节点无法启动_一次galera cluster集群故障节点无法启动问题排查

现象环境:Server version: 10.0.25-MariaDB-wsrep MariaDB Server, wsrep_25.13.raf7f02e配置文件:[rootnode-23 mariadb]# more /etc/my.cnf[mysqld]server_id3bind_address node-23port 3306datadir/var/lib/mysqllog-error/var/log/mariadb/mariadb…

DbVisualizer 8 解决中文乱码问题

DbVisualizer 8 解决中文乱码问题 原文http://blog.chinaunix.net/uid-26640696-id-3128544.html 在SQL Commander中,sql语句中如果有中文,显示是‘口口口’。解决办法如下: 在Tools->tool Properties->General->Appearance->Fon…

webform 页面传值的方法总结

ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值、存储对象传值、ajax、类、model、表单等。但是一般来说,常用的较简单有QueryString,Session,Cookies,Application…

【转】Android编程点滴(14) -- Android中资源文件夹res/raw和assets的使用

*res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。 *res/raw和assets的不同点:1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename&#xff…

iNeuOS工业互联网操作系统,智慧用电测控应用案例

目 录1. 概述... 22. 系统部署结构... 23. 用电测控终端... 34. 系统应用介绍... 61. 概述通过物联网技术对引发电气火灾的主要因素(导线温度、电流和漏电流等)进行不间断的数据跟踪与统计分析,实时发现电气线路和用电设备存在的安全隐…

mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)

MySQL数据库概述MySQL数据库是经典的关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一款…

出现了!豆瓣最高9.9分,2020年最值得看的美剧!你居然还没看过?【内附资源】...

全世界只有3.14 % 的人关注了爆炸吧知识在调性普遍黄暴烧脑的美剧大流中,《This is us》没有大牌主演,没有炫酷特效,却让观众集体沦陷,被称为5年难得一见的美剧。有人说,这是「有生之年看过的最温柔的美剧」。但它取得…

静态注册BroadcastReceiver内部类

先看代码: [java] view plaincopy public class ZonePicker { public static class SetDefaultTimeZone extends BroadcastReceiver{ Override public void onReceive(Context context, Intent intent) { // TODO Auto-gener…

Excel VBA - Workbook对象

来源:http://blog.csdn.net/alexbnlee/article/details/6911204 Workbooks(1).Name Workbooks(1).FullName 工作簿地址加名字 Workbooks(1).Path 工作簿地址 Workbooks(1).Close SaveChanges:False 关闭工作簿,并且不保存 Workbooks.Open ThisW…

C# 修改配置文件进行窗体logo切换

01—前言:题外的话大家可能发现这个号现在原创越来越少了,其实小编并没有放弃持续更新,只是把一手原创放到了 【dotnet编程大全】这个号了,那个号目前原创主要更新的是wpf mvvm方面的知识,框架用的Caliburn.Micro&…