Log4详解

 Apache Log4j详解


0.控制输出等级

[----------------------------------------------------------->

  •   log4j.rootLogger=(fatal) ,(error) ,(warn), (info), (debug) ,stdout
  •   说明:括号内的是可选的输出等级,stdout是输出的地方,用于定义下面的属性
  •   级别 fatal error warn info debug
  •   等级 fatal > error > warn > info > debug
  •   模板 log4j.rootLogger = [ 参数1 ] , [ 参数2] , [ 参数3 ] ,[ 参数4 ]  
  •   例子 log4j.rootLogger = ERROR
  •   log4j.rootLogger = fatal , error , warn , info , debug //支持多参
  •   说明      可以支持多个参数,需要输出哪个等级的Log需要自行配置输出位置,输出形式

参数列表

[

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

]

<----------------------------------------------------------]

1.控制输出位置
[----------------------------------------------------------->

  • 先定义DEBUG级别
  • 模板 log4j.appender.DEBUG=org.apache.log4j.[输出位置参数] ##定义输出位置
  • 列子 log4j.appender.DEBUG=org.apache.log4j.ConsoleAppender ##定义输出到控制台

参数列表
[

  • ConsoleAppender (控制台)
  • FileAppender (文件)
  • DailyRollingFileAppender (每天产生一个日志文件)
  • RollingFileAppender (文件大小到达指定尺寸时产生一个新的文件)
  • WriteAppender (将日志信息以流格式发送到任意指定的地方)
  • JDBCAppender (将日志信息保存到数据库中)

]

<----------------------------------------------------------]



[----------------------------------------------------------->
#如果要将Log输出到文件中

  • log4j.appender.stdout.File=文件目录及文件
  • log4j.appender.stdout.MaxFileSize=最大文件大小
  • log4j.appender.stdout.MaxBackupIndex=备份文件个数
  • log4j.appender.ServerDailyRollingFile.Append=true //追加开关
  • log4j.appender.stdout.Encoding=UTF-8 //设置编码

<----------------------------------------------------------]

2.控制输出格式
[----------------------------------------------------------->

模板 log4j.appender.stdout.layout=org.apache.log4j[输出参数]
样例 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

参数列表
[

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

]

<----------------------------------------------------------]

[----------------------------------------------------------->
附 指定日志输出格式<如果输出形式是 PatternLayout 就需要定义>

列   log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %p [%t] %C.%M(%L) | %m%n

[

  • #%m 输出代码中指定的消息
  • #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  • #%r 输出自应用启动到输出该log信息耗费的毫秒数
  • #%c 输出所属的类目,通常就是所在类的全名
  • #%t 输出产生该日志事件的线程名
  • #%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
  • #%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式
  • #比如:%d{yyyy MMM dd HH:mm:ss,SSS} 输出类似:2002年10月18日 22:10:28,921
  • #%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
  • #[Log4JDemo]是log信息的开头,可以为任意字符,一般为项目简称。
  • #log4j.appender.stdout.layout.ConversionPattern=[Log4JDemo] %p [%t] %C.%M(%L) | %m%n
  • log4j.appender.stdout.layout.ConversionPattern=[Log4JDemo] %p [%t] %C.%M(%L) | %m%n

]

<----------------------------------------------------------]

4.其他定义

[----------------------------------------------------------->

  • log4j.logger.com. abc<自定义包名> =DEBUG //指定com. abc包下的所有类的等级为DEBUG。
  • 还有其他在百度百科 https://baike.baidu.com/item/log4j/480673#2

<----------------------------------------------------------]

5.可引用模板
[----------------------------------------------------------->

XML中定义

  • #定义输出等级 = info,和输出目的地=stdout
  • log4j.rootCategory=INFO, stdout
  • #输出到控制台
  • log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  • log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  • log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

 Java代码

  • import org.apache.log4j.Logger;
  • public class Test {
  • private static Logger logger=Logger.getLogger(Test.class);
  • public static void main(String[] args) {
  • logger.info("--");}
  • }

<----------------------------------------------------------]

猜你喜欢

转载自www.cnblogs.com/Cherrio/p/11777913.html
今日推荐