Log4J学习【七】Log4J的体系结构之docLayout的结构
来源:互联网 发布:南京java公司招聘 编辑:程序博客网 时间:2024/04/30 02:45
Logger规定了输出什么日志,Appender规定了日志输出到哪里,当然,我们还会奢望,以什么样的方式输出日志。这就涉及到之前我们在观察Appender的时候创建ConsoleAppender和FileAppender都需要传入的Layout。在Log4J中,Layout对象提供了以什么样的方式格式化日志。这个对象是绑定在Appender之上的,一般在Appender创建的时候指定。
下面就简单看一个最常使用的Layout:PatternLayout。PatternLayout允许使用标准的输出格式来指定格式化日志消息的样式。举个简单的例子,可能之前大家看到的使用BasicConfigurator配置的rootLogger输出的日志样式和我们使用ConsoleAppender(new SimpleLayout)创建的输出样式完全不一样。那到底类似
0 [main] INFO cd.itcast.core.LogicProcessor - process some logic
这样的日志输出样式是什么样子的呢?一个代码:
@Test
public void testPatternLayout(){
Logger log=Logger.getLogger("cd");
String pattern="%r [%t] %-5p %c - %m%n";
log.addAppender(new ConsoleAppender(new PatternLayout(pattern)));
Logger log2=Logger.getLogger("cd.itcast.log");
log2.info("log2 info");
}
运行测试输出:
0 [main] INFO cd.itcast.log - log2 info
符合我们的预期。注意粗体字。首先定义了一个格式化日志的模式,在这个模式中,有很多以%开头的参数,每一个特定的参数代表着一种日志的内容。比如%r代表从Log4j启动到运行这条日志的时间差,单位为毫秒;第二个参数%t代表运行该日志的线程名称;第三个参数%-5p,首先-5代表这个字符总占用5个位置,p代表日志输出级别;%c代表输出日志的Logger的名字;%m代表输出的日志内容;%n代表分行。可以看到,其实PatternLayout的使用是非常简单的,只需要了解所有内置的参数和其表示的含义,再按照想要的方式输出即可。
下面就简单看一个最常使用的Layout:PatternLayout。PatternLayout允许使用标准的输出格式来指定格式化日志消息的样式。举个简单的例子,可能之前大家看到的使用BasicConfigurator配置的rootLogger输出的日志样式和我们使用ConsoleAppender(new SimpleLayout)创建的输出样式完全不一样。那到底类似
0 [main] INFO cd.itcast.core.LogicProcessor - process some logic
这样的日志输出样式是什么样子的呢?一个代码:
@Test
public void testPatternLayout(){
Logger log=Logger.getLogger("cd");
String pattern="%r [%t] %-5p %c - %m%n";
log.addAppender(new ConsoleAppender(new PatternLayout(pattern)));
Logger log2=Logger.getLogger("cd.itcast.log");
log2.info("log2 info");
}
运行测试输出:
0 [main] INFO cd.itcast.log - log2 info
符合我们的预期。注意粗体字。首先定义了一个格式化日志的模式,在这个模式中,有很多以%开头的参数,每一个特定的参数代表着一种日志的内容。比如%r代表从Log4j启动到运行这条日志的时间差,单位为毫秒;第二个参数%t代表运行该日志的线程名称;第三个参数%-5p,首先-5代表这个字符总占用5个位置,p代表日志输出级别;%c代表输出日志的Logger的名字;%m代表输出的日志内容;%n代表分行。可以看到,其实PatternLayout的使用是非常简单的,只需要了解所有内置的参数和其表示的含义,再按照想要的方式输出即可。
0 0
- Log4J学习【七】Log4J的体系结构之docLayout的结构
- Log4J学习【七】Log4J的体系结构之docLayout的结构
- Log4J学习【五】Log4J的体系结构之Logger的结构
- Log4J学习【六】Log4J的体系结构之Appender的结构
- Log4J学习【五】Log4J的体系结构之Logger的结构
- Log4J学习【六】Log4J的体系结构之Appender的结构
- Log4j的学习--什么是Log4j
- Log4j的学习--Log4j 配置文件
- SpringBoot学习笔记(七):Log4j的配置
- log4j学习记录 log4j配置文件的配置
- Log4J学习【九】Log4J的配置
- Log4J学习【九】Log4J的配置
- Log4j的学习
- log4j的学习
- Log4J配置文件的学习
- log4j的学习
- Log4j配置的学习
- Log4j的学习小结
- Log4J学习【六】Log4J的体系结构之Appender的结构
- Android中有时候运行程序的时候会报错:An internal error occurred during:。。。。
- 记忆力减退---之STM32 MDK工程创建---宏定义
- 发送邮件工具方法
- 自定义AlertDialog
- Log4J学习【七】Log4J的体系结构之docLayout的结构
- CC1101
- boost::asio编程-域名解析
- 抢票神奇<铁路通>
- E: Could not get lock /var/cache/apt/archives/lock - open (11: Resource temporarily unavailable)
- function declaration isn't a prototype
- Log4J学习【八】Log4J对3个组件的使用
- Request对象的主要方法
- PID调节整理