Log4j appender、layout
appender输出类型配置
layout日志信息格式
Threshold属性指定输出等级
Append属性指定是否追加内容
(1)appender输出类型配置
Log4j官方的appender给出了一下几种实现
org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
总结:
假如日志数据量不是很大,我们可以用DailyRollingFileAppender 每天产生一个日志,方便查看;
假如日志数据量很大,我们一般用RollingFileAppender,固定尺寸的日志,假如超过了 就产生一个新的文件;
我开来看配置文件,日志代码一般复制就可以了。
log4j.rootLogger=ERROR, Console ,File ,DailyRollingFile #Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n #File
log4j.appender.File = org.apache.log4j.FileAppender
log4j.appender.File.File = d://log2.log
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n #DailyRollingFile
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = d://log3.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
这里有两个新的配置项解释下:
MaxFileSize 是日志文件的最大尺寸;根据实际需求来定 10KB 100KB也行
MaxBackupIndex是日志文件的个数,假如超过了,则覆盖,主要考虑到的是硬盘的容量问题;根据实际需求来定 比如 100 500;
我们来看测试代码。
package com.zhi.log4j2; import org.apache.log4j.Logger; public class Demo {
private static Logger logger=Logger.getLogger(Demo.class); // 获取logger实例
public static void main(String[] args) {
logger.debug("调试debug信息"); //1
logger.info("普通Info信息"); //2
logger.warn("警告warn信息"); //3
logger.error("错误error信息"); //4 //开发中有可能会遇到一下经典异常
logger.error("错误了",new IllegalArgumentException("非法参数异常"));
}
}
这个时候通过改变系统时间,我们可以看到日志文件log3每天产生一个。
再来看到达指定尺寸大小产生一个日志文件,我们测试1KB
log4j.rootLogger=Warn, Console ,File ,RollingFile #Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n #File
log4j.appender.File = org.apache.log4j.FileAppender
log4j.appender.File.File = d://log4j//log2.log
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n #RollingFile
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = d://log4j//log4.log
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
package com.zhi.log4j2; import org.apache.log4j.Logger; public class Demo {
private static Logger logger=Logger.getLogger(Demo.class); // 获取logger实例
public static void main(String[] args) { for(int i=0;i<10000;i++){
logger.warn(" RollingFile 调试debug信息");
logger.warn(" RollingFile 调试debug信息");
}
}
}
超过1KB产生一个文件,运行如图:
(2)layout日志信息格式
Log4j提供的layout有以下几种
org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
html格式布局
配置
log4j.rootLogger=Warn, Console #Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.HTMLLayout
代码
package com.zhi.log4j2; import org.apache.log4j.Logger; public class Demo {
private static Logger logger=Logger.getLogger(Demo.class); // 获取logger实例
public static void main(String[] args) {
logger.debug("调试debug信息"); //1
logger.info("普通Info信息"); //2
logger.warn("警告warn信息"); //3
logger.error("错误error信息"); //4 //开发中有可能会遇到一下经典异常
logger.error("错误了",new IllegalArgumentException("非法参数异常"));
}
}
标准的html table表格格式,显示信息包括 线程 等级 类 报错信息;
SimpleLayout简单布局
log4j.rootLogger=Warn, Console #Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.SimpleLayout
package com.zhi.log4j2; import org.apache.log4j.Logger; public class Demo {
private static Logger logger=Logger.getLogger(Demo.class); // 获取logger实例
public static void main(String[] args) {
logger.debug("调试debug信息"); //1
logger.info("普通Info信息"); //2
logger.warn("警告warn信息"); //3
logger.error("错误error信息"); //4 //开发中有可能会遇到一下经典异常
logger.error("错误了",new IllegalArgumentException("非法参数异常"));
}
}
TTCCLayout布局
log4j.rootLogger=Warn, Console #Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.TTCCLayout
package com.zhi.log4j2; import org.apache.log4j.Logger; public class Demo {
private static Logger logger=Logger.getLogger(Demo.class); // 获取logger实例
public static void main(String[] args) {
logger.debug("调试debug信息"); //1
logger.info("普通Info信息"); //2
logger.warn("警告warn信息"); //3
logger.error("错误error信息"); //4 //开发中有可能会遇到一下经典异常
logger.error("错误了",new IllegalArgumentException("非法参数异常"));
}
}
PatternLayout布局是我们以后推荐使用的,很灵活;
有个ConversionPattern属性,灵活配置输出属性:
%m 输出代码中指定的消息;
%M 输出打印该条日志的方法名;
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
%r 输出自应用启动到输出该log信息耗费的毫秒数;
%c 输出所属的类目,通常就是所在类的全名;
%t 输出产生该日志事件的线程名;
%n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;
%l 输出日志事件的发生位置,及在代码中的行数;
Log4j appender、layout的更多相关文章
- log4j.appender.stdout.layout.ConversionPattern
http://501565246-qq-com.iteye.com/blog/1991881 http://wenku.baidu.com/link?url=e4Z9v9CY_gwRxHrggzHXx ...
- log4j配置日志文件log4j.appender.R.File相对路径方法
方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs ...
- Log4j、Log4j 2、Logback、SFL4J、JUL、JCL的比较
Log4j.Log4j 2.Logback.SFL4J.JUL.JCL的比较 之前就知道有好几种日志框架,但是一直都是听别人讲,在什么时候该用何种logger,哪种logger比较好……一直对Log4 ...
- log4j.appender.file.DatePattern
DailyRollingFileAppender是日志记录软件包Log4J中的一个Appender,它能够按一定的频度滚动日志记录文件. 我们可以按下面的方式配置DailyRollingFileApp ...
- Log4J Appender - 将Log4J的日志内容发送到agent的source
项目中使用log4j打印的内容同时传输到flume 1.flume端 flume的agent配置内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a1.sour ...
- Log4j Threshold、Append
报错ERROR日志单独存放 Threshold属性可以指定日志level Log4j根据日志信息的重要程度,分OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL 比如我们指定某个a ...
- log4j:ERROR Could not find value for key log4j.appender.error
我是在rootLogger末尾增加R就好了. 终于我的配置环境例如以下: #设置日志的级别 ,多个以,分开(没有给出的,则不会被输出) log4j.rootLogger=info,error,R #D ...
- Log4j appender输出类型配置
Log4j官方的appender给出了一下几种实现 org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), ...
- log4j.appender.AFile.File日志的相对路径
log4j.appender.AFile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.AFile.DatePattern='.'yy ...
随机推荐
- dvorak键盘布局调整
一站直达: http://www.kaufmann.no/roland/dvorak/
- idea奇葩问题汇总
1.用idea在tomcat里运行普通的springMVC项目,用nacos做为配置中心,通过@NacosValue来读取配置中心的值,配置了autoRefreshed = true但是不起作用,读取 ...
- sql中的isnull
ISNULL 使用指定的替换值替换 NULL. 语法ISNULL ( check_expression , replacement_value ) 参数check_expression 将被检查是否为 ...
- linux 阿里云 centos7 环境下安装easymock(一)
一.说一说Easy-mock的使用场景和优点:1.Easy Mock 是一个可视化,并且能快速生成 模拟数据 的持久化服务,2.基于 Swagger 创建项目,以节省手动创建接口的时间,这点也是我搭建 ...
- 问题 G: 圆桌上的晚餐
问题 G: 圆桌上的晚餐 时间限制: 1 Sec 内存限制: 128 MB提交: 1583 解决: 656[提交] [状态] [命题人:jsu_admin] 题目描述 大家一定在圆 ...
- P5444 [APIO2019]奇怪装置
传送门 考虑求出最小的循环节 $G$ 使得 $t,t+G$ 得到的数对是一样的 由 $y \equiv t \mod B$ ,得到 $G$ 一定是 $B$ 的倍数,设 $zB=G$,则 $t,t+zB ...
- 微信jssdk配置的问题,使用MVC制作的demo
一,view代码 <script src="~/Scripts/jquery-3.3.1.js"></script> <script src=&quo ...
- Tomcat 8.5 apr 模式配置
tomcat APR模式配置 一.环境 操作系统:Ubutnu 14 ubuntu@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50~14.04 ...
- ASE Alpha Sprint - backend scrum 2
本次scrum于2019.11.5再sky garden进行,持续30分钟. 参与人: Zhikai Chen, Jia Ning, Haifeng Chen, Hao Wang 请假: Xin Ka ...
- 2018-8-27-C#-powshell-调用
title author date CreateTime categories C# powshell 调用 lindexi 2018-8-27 16:20:4 +0800 2018-06-18 20 ...