美文网首页Java学习
Java 使用slf4j记录日志

Java 使用slf4j记录日志

作者: xiaogp | 来源:发表于2020-07-13 19:37 被阅读0次

    引入依赖

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

    相关文章

      网友评论

        本文标题:Java 使用slf4j记录日志

        本文链接:https://www.haomeiwen.com/subject/zwlzcktx.html