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的更多相关文章

  1. log4j.appender.stdout.layout.ConversionPattern

    http://501565246-qq-com.iteye.com/blog/1991881 http://wenku.baidu.com/link?url=e4Z9v9CY_gwRxHrggzHXx ...

  2. log4j配置日志文件log4j.appender.R.File相对路径方法

    方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs ...

  3. Log4j、Log4j 2、Logback、SFL4J、JUL、JCL的比较

    Log4j.Log4j 2.Logback.SFL4J.JUL.JCL的比较 之前就知道有好几种日志框架,但是一直都是听别人讲,在什么时候该用何种logger,哪种logger比较好……一直对Log4 ...

  4. log4j.appender.file.DatePattern

    DailyRollingFileAppender是日志记录软件包Log4J中的一个Appender,它能够按一定的频度滚动日志记录文件. 我们可以按下面的方式配置DailyRollingFileApp ...

  5. 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 ...

  6. Log4j Threshold、Append

    报错ERROR日志单独存放 Threshold属性可以指定日志level Log4j根据日志信息的重要程度,分OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL 比如我们指定某个a ...

  7. log4j:ERROR Could not find value for key log4j.appender.error

    我是在rootLogger末尾增加R就好了. 终于我的配置环境例如以下: #设置日志的级别 ,多个以,分开(没有给出的,则不会被输出) log4j.rootLogger=info,error,R #D ...

  8. Log4j appender输出类型配置

    Log4j官方的appender给出了一下几种实现 org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), ...

  9. log4j.appender.AFile.File日志的相对路径

    log4j.appender.AFile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.AFile.DatePattern='.'yy ...

随机推荐

  1. oracle--groupby分组学习

    使用group by分组 在多行函数中不能直接使用普通字段,除非group by 在多行函数中不能直接使用单行函数,除非group by group by学习: ---1.使用group by进行数据 ...

  2. python基础-10 程序目录结构 学生选课系统面向对象练习

    一 程序目录结构 1 bin文件夹 二进制文件.代码程序  2 conf 配置文件  3 帮助文档  4 头文件库文件等 二 学生选课系统部分代码 未完待续 1 包内的__init__.py文件 在包 ...

  3. jvm学习(2)JVM内存说明

    前言 一.类方法 类方法是静态方法,前面需要有static修饰符修饰.类方法内不能涉及有关变量的内容1.不能调用类的对象方法2.不能引用对象变量3.类方法不能被重写(覆盖)4.类方法不能使用super ...

  4. Can you answer these queries? HDU 4027 线段树

    Can you answer these queries? HDU 4027 线段树 题意 是说有从1到编号的船,每个船都有自己战斗值,然后我方有一个秘密武器,可以使得从一段编号内的船的战斗值变为原来 ...

  5. Kubeadm安装Kubernetes 1.15.1

    一.实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.198.200 >=2c >=2G master 192.168.198.201 >=2c ...

  6. 你浏览器的书签栏还够用么? - 程序员学点xx 特辑

    lluxury 运维开发时间 为什么会想到这个话题,是因为最近看到的一条广告:注册 xx 送2048GB资料.yann 暗自感慨:"都9012年了,还有人分享家里的祖传硬盘".2T ...

  7. [翻译]解释JavaScript中的类型转换

    原文地址:JavaScript type coercion explained 类型转换是将值从一种类型转换为另一种类型的过程(比如字符串转换为数值,对象转换为布尔值,等等).任何类型,无论是原始类型 ...

  8. ASE Alpha Sprint - backend scrum 8

    本次scrum于2019.11.13再sky garden进行,持续30分钟. 参与人: Zhikai Chen, Jia Ning, Hao Wang 请假: Xin Kang, Lihao Ran ...

  9. python面向对象的三大特征--多态

    #什么是多态:由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同 #多态体现在由一个类实例化出多个对象,这些对象执行相同的方法时,执行的过程和结果不一样--不同的对象调用相同的方法 #多态的概 ...

  10. 64bit assembly

    16个通用寄存器: %rax %rbx %rcx %rdx %rsi %rdi %rbp %rsp %r8 %r9 %r10 %r11 %r12 %r13 %r14 %r15