Log4j 2 同时输出日志到控制台和文件

目标

Operating System Version
Eclipse Version
JDK version
Log4j 2 Version

Log4j 2 同时输出日志到控制台和文件。

方案

给同一个 logger 绑定一个 console appender 和一个 file appender。

即类似于这样的形式:

rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.file.ref = LOGFILE

实例

源码:https://github.com/HustLion/java_console_file_log4j

  1. 新建一个 log4j 2 项目。并在 App.java 中写上相应的 log 代码。可参考:Eclipse 建立 Log4j 2 的 Hello World 项目(使用 properties 文件)
  2. log4j2.properties 中加入以下内容

    
    
    # 建立名称为 console 和 file 的两个 appender
    
    name=PropertiesConfig
    property.filename = logs
    appenders = console, file
    
    
    # 设置两个 appender 的参数,其中 name 是用于之后的 ref 的
    
    
    # 首先是 console appender
    
    appender.console.type = Console
    appender.console.name = STDOUT
    appender.console.layout.type = PatternLayout
    appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
    
    
    # 然后是 File appender, 输出路径是 ${filename}/propertieslogs.log
    
    
    # filename 在前面已经设定为 logs
    
    
    # 所以输出日志文件是在当前项目根目录下的 logs/propertieslogs.log
    
    appender.file.type = File
    appender.file.name = LOGFILE
    appender.file.fileName=${filename}/propertieslogs.log
    appender.file.layout.type=PatternLayout
    appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
    
    
    
    # 设置 rootLogger 的记录级别,将 console 和 file 绑定到 rootLogger 上。
    
    rootLogger.level = debug
    rootLogger.appenderRef.stdout.ref = STDOUT
    rootLogger.appenderRef.file.ref = LOGFILE
  3. 运行项目,命令行输出与当前目录下的logs/propertieslogs.log都是以下内容

    [ERROR] 2017-05-28 12:12:12.376 [main]  - Logged by root logger: Hello this is an error
    [INFO ] 2017-05-28 12:12:12.378 [main]  - Logged by root logger: Hello World!
    [DEBUG] 2017-05-28 12:12:12.379 [main]  - Logged by root logger: Hello debug message.

参考

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值