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");
}
}