[toc]
日志架构log4j基本使用
配置文件
###############################################
# 以下的配置文件都是以log4j.开头
# 最最重要就是第一个log4j.rootLogger,指定log4j日志的输出级别(目的地)
# log4j.rootLogger=INFO,stdout,file意思为:
# 日志可以输出INFO级别以上的数据,将日志输出到stdout标准控制输出(控制台),输出到file
#
# 常见的日志输出级别:DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命错误)
# 日志输出的顺序:和日志输出级别一致,即配置为一个级别,输出的内容只能是该级别及其以上级别的信息
# INFO(输出的包括 INFO WARN ERROR FATAL)
# ERROR(ERROR FATAL)
# 所以,一般情况下:在开发,测试环境中,日志的级别为DEBUG;在生产环境中,日志级别为INFO
#
# 输出目的地:
# 日志输出的各种各样的目的地,都是通过Appender来进行实现追加的
# 我们在appender中看到的PatternLayout的格式如下:
#
#%m 输出代码中指定的消息
#%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
#%p 输出优先级,即日志级别:DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目,通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) log4j配置详解 - stone - stonexmx 的博客
# 常见的Appender
# ConsoleAppender
# FileAppender
#
#
###############################################
log4j.rootLogger=INFO,stdout,R, E
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File = ./logs/spider.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
### 输出到日志文件 ###
# 每天生成一个新的日志文件
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = ./logs/log.log
log4j.appender.R.Append = true
# DEBUG级别及以上的日志信息输出到./logs/log.log中
log4j.appender.R.Threshold = DEBUG
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n
### 保存异常信息到单独文件 ###
# 每天生成一个新的日志文件
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ./logs/error.log
log4j.appender.E.Append = true
# ERROR级别及以上的日志信息输出到./logs/log.log中
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n
程序代码
package com.uplooking.bigdata.spider;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 使用Log4j步骤:
* 1.引入maven的依赖
* 2.将log4j.properties或log4j.xml配置文件添加进项目的classpath下面
*
* log4j的入口类就是Logger
*/
public class Log4jTest {
@Test
public void testLog4j() {
Logger logger = LoggerFactory.getLogger(Log4jTest.class);
logger.debug("日志-debug信息");
logger.info("日志-info信息");
logger.warn("日志-warn信息");
logger.error("日志-error信息");
}
}
测试
执行程序代码,输出如下:
2018-03-29 15:31:51,164 [main] [com.uplooking.bigdata.spider.Log4jTest] [INFO] - 日志-info信息
2018-03-29 15:31:51,165 [main] [com.uplooking.bigdata.spider.Log4jTest] [WARN] - 日志-warn信息
2018-03-29 15:31:51,165 [main] [com.uplooking.bigdata.spider.Log4jTest] [ERROR] - 日志-error信息
同时也可以看到生成的日志文件log.log
和error.log
。
原文地址:http://blog.51cto.com/xpleaf/2092496
时间: 2024-11-01 00:29:53