logback 的配置

本贴最后更新于 2664 天前,其中的信息可能已经水流花落

记录一下 logback 的配置,方便以后 copy paste


1. maven 坐标

<properties> <slf4j.version>1.7.19</slf4j.version> <logback.version>1.1.3</logback.version> </properties> <!-- 日志 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency>

然后就是在 classpath 目录下新建 logback.xml,模版如下:

2. logback.xml

<?xml version="1.0" encoding="UTF-8"?> <configuration scan="false" debug="false"> <property name="APP_NAME" value="tookit"/> <property name="LOG_HOME" value="logs"/> <contextName>${APP_NAME}</contextName> <timestamp key="datetime" datePattern="yyyy-MM-dd HH:mm:ss" /> <!-- 控制台输出所有日志 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- <pattern>%-5level | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger - %msg%n</pattern> --> <!-- 此种格式会打印出比较美观的超链接日志,包含行号方便调试,不建议生产环境使用 --> <pattern>%d{yyyy-MM-dd HH:mm:ss,SSS} %5p [%t] %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''} - %m%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 打印所有非ERROR级别日志 --> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--当天生成的日志文件名--> <file>${LOG_HOME}/${APP_NAME}.log</file> <!-- 每隔一天将昨天的日志文件转换为一个新的压缩文件,最多保存30天。 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/${APP_NAME}.%d{yyyy-MM-dd}.log.gz</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%-5level | %d{yyyy-MM-dd HH:mm:ss.SSS} - %logger - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <!-- 表示非ERROR级别的日志均接收 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>DENY</onMatch> <onMismatch>ACCEPT</onMismatch> </filter> </appender> <!-- 打印所有ERROR级别日志 --> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--当天生成的日志文件名--> <file>${LOG_HOME}/${APP_NAME}.error.log</file> <!-- 每隔一天将昨天的日志文件转换为一个新的压缩文件,最多保存30天。 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/${APP_NAME}.error.%d{yyyy-MM-dd}.log.gz</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%-5level | %d{yyyy-MM-dd HH:mm:ss.SSS} - %logger - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <!-- 表示只接收ERROR级别的日志 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- root的策略一般指的是打印日志的级别,打印到哪(使用何种打印器) --> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="INFO_FILE"/> <appender-ref ref="ERROR_FILE"/> </root> <!-- level="INFO"表示org.springframework包下的日志只打印INFO级别以上的,以此级别为准。 additivity="false" 表示不使用root的打印策略,additivity的值默认为true,即默认继承root打印策略。显然,因为没有打印器,此处Spring的日志将不会打印。 --> <logger name="org.springframework" level="INFO" additivity="false"/> </configuration>

3. 使用也写了吧 好 copy。。。

import org.slf4j.Logger; import org.slf4j.LoggerFactory; final static Logger logger = LoggerFactory.getLogger(DefaultPluginRegisterFactory.class);

鼠标掉地上了 睡觉了。。

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1062 引用 • 3455 回帖 • 151 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3202 引用 • 8217 回帖
  • 日志
    45 引用 • 105 回帖
  • logback
    4 引用 • 1 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...