博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Log4j常用配置及使用
阅读量:5818 次
发布时间:2019-06-18

本文共 6275 字,大约阅读时间需要 20 分钟。

Log4j常用配置及使用

2016-12-14

目录

1

2
  2.1
  2.2
  2.3
3
  3.1
  3.2
  3.3
4
  4.1
  4.2
  4.3

1 添加log4j依赖


 

maven的pom.xml文件中添加log4j依赖

log4j
log4j
1.2.16
provided

 

2 使用代码配置并调用log


 

2.1 代码配置LogConfiguration.java

import java.util.Properties;import org.apache.log4j.PropertyConfigurator;public class LogConfiguration {        public static void initLog(String logFilePath){        //声明日志文件存储路径以及文件名、格式        Properties prop = new Properties();        //配置日志输出的格式        prop.setProperty("log4j.rootLogger","info, toConsole, toFile");        prop.setProperty("log4j.appender.file.encoding","UTF-8" );                prop.setProperty("log4j.appender.toConsole","org.apache.log4j.ConsoleAppender");        prop.setProperty("log4j.appender.toConsole.Target","System.out");        prop.setProperty("log4j.appender.toConsole.layout","org.apache.log4j.PatternLayout ");        prop.setProperty("log4j.appender.toConsole.layout.ConversionPattern","[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n");                    prop.setProperty("log4j.appender.toFile.file", logFilePath);         //每天产生一个日志文件        prop.setProperty("log4j.appender.toFile", "org.apache.log4j.DailyRollingFileAppender");                //服务器启动日志是追加,false:服务器启动后会生成日志文件把老的覆盖掉        prop.setProperty("log4j.appender.toFile.Append","true");        prop.setProperty("log4j.appender.toFile.Threshold", "info");        prop.setProperty("log4j.appender.toFile.layout", "org.apache.log4j.PatternLayout");        prop.setProperty("log4j.appender.toFile.layout.ConversionPattern", "[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n");          //[2017-03-31 14:10:44] [ERROR] HttpResponseAnalyze:31 - Not equal        //prop.setProperty("log4j.appender.toFile.layout.ConversionPattern", "[%d{yyyy-MM-dd HH:mm:ss}] [%p] %c{1}:%L - %m%n");
//设置每天生成一个文件名后添加的名称,备份名称:年月日.log         prop.setProperty("log4j.appender.toFile.DatePattern","'.'yyyy-MM-dd'.log'");
//使配置生效  PropertyConfigurator.configure(prop); } }

2.2 调用

import org.apache.log4j.Logger;public class TestLog {    static Logger logger = Logger.getLogger(TestLog.class.getName());        public static void main(String[] args)  {                LogConfiguration.initLog("D:\\log\\result.log");        logger.info("log info");        logger.warn("log warn");        logger.error("log error");                try {        Thread.sleep(2000);        }        catch(Exception ex)        {}                logger.info("log1 info");        logger.warn("log1 warn");        logger.error("log1 error");            }}

2.3 结果

输出到Ecliplse的Console界面和文件D:\log\result.log中,内容如下:

[2016-12-14 16:03:34] [INFO] log info[2016-12-14 16:03:34] [WARN] log warn[2016-12-14 16:03:34] [ERROR] log error[2016-12-14 16:03:36] [INFO] log1 info[2016-12-14 16:03:36] [WARN] log1 warn[2016-12-14 16:03:36] [ERROR] log1 error

另外,由于配置了每天生成一个备份,系统时间切一天后日后,再运行,原先的result.log会变成result.log.2016-12-13.log,新的日志会重新放到新建的日志文件result.log

3 使用Properties文件配置并调用log


 

3.1 文件配置log4j.properties

log4j.rootLogger=INFO, toConsole, toFile log4j.appender.file.encoding=UTF-8log4j.appender.toConsole=org.apache.log4j.ConsoleAppender log4j.appender.toConsole.Target=System.out  log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout log4j.appender.toConsole.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n   log4j.appender.toFile.file=D:\\log\\result.log #Daily one log filelog4j.appender.toFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.toFile.Append=true  log4j.appender.toFile.Threshold=info log4j.appender.toFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.toFile.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%nlog4j.appender.toFile.DatePattern='.'yyyy-MM-dd'.log'

3.2 调用

import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;public class TestLog {    static Logger logger = Logger.getLogger(TestLog.class.getName());        public static void main(String[] args)  {                PropertyConfigurator.configure( "D:\\Users\\...\\config\\log4j.properties" );        logger.info("log info");        logger.warn("log warn");        logger.error("log error");                try {        Thread.sleep(2000);        }        catch(Exception ex)        {}                logger.info("log1 info");        logger.warn("log1 warn");        logger.error("log1 error");                }}

3.3 结果

和上面一致

4 按输出级别的种类保存内容到不同目的地


 

从高到低:ERROR、WARN、INFO、DEBUG

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

4.1 文件配置log4j.properties

log4j.rootLogger=INFO, toConsole log4j.appender.file.encoding=UTF-8log4j.appender.toConsole=org.apache.log4j.ConsoleAppender log4j.appender.toConsole.Target=System.out  log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout log4j.appender.toConsole.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n     log4j.logger.myError=ERROR, toFile   log4j.appender.toFile.file=D:\\log\\Errors.log #Daily one log filelog4j.appender.toFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.toFile.Append=true  log4j.appender.toFile.Threshold=info log4j.appender.toFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.toFile.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%nlog4j.appender.toFile.DatePattern='.'yyyy-MM-dd'.log'

4.2 调用

import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;public class TestLog {    static Logger logger = Logger.getLogger(TestLog.class.getName());    static Logger errorLogger=Logger.getLogger("myError");        public static void main(String[] args)  {                PropertyConfigurator.configure( "D:\\Users\\...\\config\\log4j.properties" );        logger.info("log info");        logger.warn("log warn");        logger.error("log error");        errorLogger.info("myError info");        errorLogger.warn("myError warn");        errorLogger.error("myError error");    }}

4.3 结果

Eclipse的Console界面

[2016-12-13 17:45:06] [INFO] log info [2016-12-13 17:45:06] [WARN] log warn [2016-12-13 17:45:06] [ERROR] log error [2016-12-13 17:45:06] [ERROR] myError error

Errors.log

[2016-12-13 17:45:06] [ERROR] myError error

参考

[1]

[2]

[3]

[4]

 

//设置每天生成一个文件名后添加的名称,备份名称:年月日.log

转载于:https://www.cnblogs.com/Ming8006/p/6170428.html

你可能感兴趣的文章
微软 codeplex 团队
查看>>
[LeetCode] Word Ladder II
查看>>
arm开发板上移植opencv+pyzbar+numpy,用python3实现二维码识别
查看>>
XDOJ 1202: The Offer - Lunatic
查看>>
TPYBoard读取芯片上的温度传感器
查看>>
CentOS通过日志反查入侵
查看>>
组合模式 + 装饰模式 + 迭代器模式 显示两级用户体系
查看>>
第三周编程总结
查看>>
右值引用
查看>>
javaWeb四大域对象
查看>>
Android的消息机制: Message/MessageQueue/Handler/Looper
查看>>
C++求值顺序
查看>>
postman学习网址
查看>>
注册表中路径的写法
查看>>
简单的 FFT 变形 - BZOJ 2194
查看>>
transient关键字的理解
查看>>
powershell 串口相关
查看>>
Django的admin使用
查看>>
mysql常用命令
查看>>
linux 管道
查看>>