Log4j配置使用

Slf4j

slf4j(Simple Loging Facade For Java)是 Java 程序提供日志输出的统一接口,它对日志相关功能进行限制,不提供具体实现,只是告诉其他具体日志实现方案应该满足什么功能、实现什么接口
所以单独的slf4j是不能工作的,必须搭配其他具体的日志实现方案,比如 apache 的 org.apache.log4j.Logger,JDK 自带的 java.util.logging.Logger 以及 log4j 等

POM

<dependencies>
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version>1.7.25</version>
   </dependency>
</dependencies>

log4j.properties 配置文件

配置文件

在Maven的src/main/resources目录下创建log4j.properties文件,名字不可变,log4j会自动查找该名字的文件并加载配置

log4j.rootLogger=INFO, console, file

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=logs/log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.MaxFileSize=1024KB
log4j.appender.A3.MaxBackupIndex=10
log4j.appender.file.layout.ConversionPattern=%d %p [%c] - %m%n

属性解释

  • log4j.rootLogger:根日志,配置日志级别INFO,预定义了两种附加器(consolefile),附加器的作用是控制日志输出的位置

colsole附加器的配置

  • log4j.appender.console:日志输出位置在控制台
  • log4j.appender.console.layout:采用匹配器布局模式
    • org.apache.log4j.HTMLLayout:网页布局,以 HTML 表格形式布局
    • org.apache.log4j.SimpleLayout:简单布局,包含日志信息的级别和信息字符串
    • org.apache.log4j.PatternLayout:匹配器布局,其通过设置 PatternLayout 的ConversionPattern 属性值来控制具体输出格式的
  • log4j.appender.console.layout.ConversionPattern:由于使用了匹配器布局,所以需要配此项,日志输出格式为:日期 日志级别 [类名] - 消息换行符
    file附加器配置
  • log4j.appender.file:每天产生一个日志文件
  • log4j.appender.file.File:日志文件输出位置 logs/log.log
  • log4j.appender.file.layout:采用匹配器布局模式
  • log4j.appender.A3.MaxFileSize:日志文件最大值
  • log4j.appender.A3.MaxBackupIndex:最多纪录文件数
  • log4j.appender.file.layout.ConversionPattern:日志输出格式为:日期 日志级别 [类名] - 消息换行符

格式参数

  • %m:代码设定的消息
  • %p:优先级,即 DEBUG,INFO,WARN,ERROR,FATAL
  • %r:自应用启动到输出该 log 信息耗费的毫秒数
  • %c:所属的类目,通常就是所在类的全名
  • %t:产生该日志事件的线程名
  • %n:换行
  • %d:日志时间点的日期或时间,默认格式为 ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22:10:28,921
  • %l:输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

使用

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyTest {

    public static final Logger logger = LoggerFactory.getLogger(MyTest.class);

    public static void main(String[] args) {
        logger.info("slf4j for info");
        logger.debug("slf4j for debug");
        logger.error("slf4j for error");
        logger.warn("slf4j for warn");

        String message = "Hello SLF4J";
        // {}为log4j提供的占位符
        logger.info("slf4j message is : {}", message);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值