Java日志打印

前言:写项目时经常需要打印日志,便于记录数据,容易调试。相较于syso打印信息时,由于syso是硬编码,打印输出只能显示在控制台上,而且它是内部是线程同步,容易造成系统阻塞。而日志输出可以输出在控制台,也可以写到文件里面,这样也有利于后期数据分析。

日志记录
日志打印有很多类库,比如jdk自带的Logger、apache的log4j等等,当然也可以自己实现。我们这边日志打印选用SLF4J(简单日志门面),它不是具体的实现,而是通用日志的一个接口。当你想选用不同日志的情况时,只需要更改类库就行。

SLF4J不同于其他日志类库,与其它有很大的不同。SLF4J(Simple logging Facade for Java)不是一个真正的日志实现,而是一个抽象层( abstraction layer),它允许你在后台使用任意一个日志类库。

比如:选择JDK自带的日志系统,则只需要将slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.10.jar放置到classpath中即可,如果中途无法忍受JDK自带的日志系统了,想换成log4j的日志系统,仅需要用slf4j-log4j12-1.5.10.jar替换slf4j-jdk14-1.5.10.jar即可(当然也需要log4j的jar及配置文件)

实现方法
1、导入jar包:
这里我是maven工程,所以在pom.xml下面添加

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>

2、把日志的配置信息log4j.properties放置到src下面,程序会读取src下面的日志信息。我的log4j.properties配置如下

### 设置级别和目的地(这里多个目的地) 级别为info,A1/DRF为目的地 ###
log4j.rootLogger=INFO,A1,DRF
### 输出到控制台 ###
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# log4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
log4j.appender.A1.layout.ConversionPattern=%d %5p [%F:%L] : %m%n

###输出到文件###
log4j.appender.DRF=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DRF.Threshold=INFO
log4j.appender.DRF.DatePattern='.'yyyy-MM-dd
log4j.appender.DRF.File=../logs/log4jtest.log
log4j.appender.DRF.Append=true
log4j.appender.DRF.layout=org.apache.log4j.PatternLayout
log4j.appender.DRF.layout.ConversionPattern=[%-5p][%d{yyyyMMdd HH:mm:ss,SSS}][%C{1}:%L] %m%n

main方法:

package com.llh;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ALogger {
    public static Logger log = LoggerFactory.getLogger(ALogger.class);

    public static void main(String[] args) {
        log.info("输出日志");
    }
}

当运行上面代码时,日志会显示在控制台上面,还会记录在../logs/log4jtest.log文件中。路径是相对路径,根据你代码存放的路径决定。

log4j.properties配置讲解

  1. 配置根logger 第一个参数为等级,优先级从低到高DEBUG,INFO,WARN,ERROR等。
    当level为info,就不会显示debug的内容,只会显示等级比它高的。 log4j.rootLogger = [ level ] , appenderName1 , appenderName2…

  2. log4j.appender.XX.layout.ConversionPattern是日志输出的格式

  3. Threshold=INFO:指定日志消息的输出最低层次

  4. ‘.’yyyy-MM-dd 每天生成一个文件

  5. log4j.appender.DRF.File=../logs/log4jtest.log 生成文件的路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值