slf4j风格 - 项目log风格(2020-02-29)

### 日志实现框架有多种

- Log4j

- Commons Logging

- Logback

---


上面这些实现框架都是slf4j风格

### 示例Log4j使用

1. 添加pom依赖

```

<dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>slf4j-log4j12</artifactId>

    <version>1.7.25</version>

</dependency>

```

2. 在 src/main/resources 目录下创建名为 log4j.properties 的属性配置文件

```

log4j.rootLogger=INFO, console, file

log4j.appender.console=org.apache.log4j.ConsoleAppender

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

log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender

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

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

log4j.appender.A3.MaxFileSize=1024KB

log4j.appender.A3.MaxBackupIndex=10

log4j.appender.file.layout.ConversionPattern=%d %p [%c] - %m%n

```

日志配置相关说明:

>log4j.rootLogger:根日志,配置了日志级别为 INFO,预定义了名称为 console、file 两种附加器:<br>

log4j.appender.console:console 附加器,日志输出位置在控制台;<br>

log4j.appender.console.layout:console 附加器,采用匹配器布局模式<br>

log4j.appender.console.layout.ConversionPattern:console 附加器,日志输出格式为:日期 日志级别 [类名] - 消息换行符<br>

log4j.appender.file:file 附加器,每天产生一个日志文件<br>

log4j.appender.file.File:file 附加器,日志文件输出位置 logs/log.log<br>

log4j.appender.file.layout:file 附加器,采用匹配器布局模式<br>

log4j.appender.A3.MaxFileSize:日志文件最大值<br>

log4j.appender.A3.MaxBackupIndex:最多纪录文件数<br>

log4j.appender.file.layout.ConversionPattern:file 附加器,日志输出格式为:日期 日志级别 [类名] - 消息换行符

### 示例Logback使用

1. 引入slf4j、logback相关依赖

```

<!-- slf4j -->

    <dependency>

        <groupId>org.slf4j</groupId>

        <artifactId>slf4j-api</artifactId>

        <version>${slf4j.version}</version>

    </dependency>

    <!-- logback -->

    <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>

    <dependency>

        <groupId>ch.qos.logback</groupId>

        <artifactId>logback-access</artifactId>

        <version>${logback.version}</version>

    </dependency>

```

2. 添加配置文件logback.xml

```xml

<?xml 在微服务的多模块中使用需要在各个模块的src/main/resources/中配置?>

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <appender name="HomeUserLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>/mw/log/syt_v2/homeUser.log</file>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

            <Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%class{16} %line] - %msg%n</Pattern>

        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <FileNamePattern>/mw/log/syt_v2/homeUser.%d{yyyy-MM-dd}.%i.log.zip

            </FileNamePattern>

            <timeBasedFileNamingAndTriggeringPolicy

                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

                <maxFileSize>500MB</maxFileSize>

            </timeBasedFileNamingAndTriggeringPolicy>

            <maxHistory>30</maxHistory>

        </rollingPolicy>

    </appender>

    <root level="INFO">

        <appender-ref ref="HomeUserLog"/>

    </root>

</configuration>

```

---

#### 可配合lombok插件使用,在类上用@Slf4j注解后直接使用log静态类的方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容