Java 使用slf4j记录日志

引入依赖

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

在resources目录下创建log4j.properties文件

# 日志级别,stdout方式,file方式
log4j.rootLogger=info,stdout,file

# Redirect log messages to console
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} %-5p %c{1}:%L - %m%n
#log4j.appender.C.encoding=gbk

# Rirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/log.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
#log4j.appender.C.encoding=gbk
log4j.rootLogger=info,stdout,file

指定日志级别显示info以上的信息

设置两个日志对象stdout和file

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

采用org.apache.log4j.PatternLayout的风格进行布局

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

设置stdout为控制台输出

log4j.appender.stdout.layout.ConversionPattern 设置输出格式

%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

%d: 时间日期格式
%p: 日志等级, %-5p, 5调节和后面一个字段的间距大小, 越大间距越大
%c: 输出日志信息的代码所在的类, %c{1},{}中的数字代表来的层级深度
%L: 输出日志的代码所在的行数
%m: 输出指定信息, 就是message
%n: 输出一个换行符号, linux下是n, windows是rn

%-5p的水平

2020-07-13 19:02:46 INFO  Main:61 - 提交kafka offset!
2020-07-13 19:02:49 INFO  SolrClient:68 - 提交solr的数据为:8

%-20p的水平

2020-07-13 19:03:26 INFO                 Main:61 - 提交kafka offset!
2020-07-13 19:03:27 INFO                 Main:61 - 提交kafka offset!

%c{1}水平

2020-07-13 19:02:49 INFO  SolrClient:68 - 提交solr的数据为:8
2020-07-13 19:03:27 INFO                 Main:61 - 提交kafka offset!

%c{2}水平

2020-07-13 19:04:20 INFO  mycom.Main:61 - 提交kafka offset!
2020-07-13 19:04:20 INFO  mycom.Main:61 - 提交kafka offset!

%c{3}水平

2020-07-13 19:06:29 INFO  com.mycom.Main:61 - 提交kafka offset!
2020-07-13 19:04:20 INFO  com.mycom.Main:61 - 提交kafka offset!
log4j.appender.file=org.apache.log4j.RollingFileAppender

指定file的输出类型是输出到文件

log4j.appender.file.File=logs/log.log

输出的文件路径(需要新建logs文件夹)

log4j.appender.file.MaxFileSize=5MB

日志大小超过5mb就分一个新文件

log4j.appender.file.MaxBackupIndex=10

最大保存的最新的日志份数, 11份, 后缀从1到10, 还有一个最新的没有后缀的

-rw-r--r-- 1 root root 4214040 7月  13 19:22 log.log
-rw-r--r-- 1 root root 6493256 7月  13 17:18 log.log.1
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.2
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.3
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.4
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.5
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.6
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.7
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.8
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.9
-rw-r--r-- 1 root root 5343152 7月  13 16:36 log.log.10

在脚本中获得logger对象

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


public class IncSolrEnt {
    private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);

    public static void main(String[] args) {
        LOGGER.info("hello");
    }
}
posted @ 2021-07-12 17:41  satire  阅读(187)  评论(0编辑  收藏  举报