【Spring Boot】日志配置
本文最后更新于 1380 天前,其中的信息可能已经有所发展或是发生改变。

[successbox title=”默认配置”]
不推荐使用默认配置文件配置,不够灵活,对Log4j2日志框架等不够友好

日志文件名,如:my.log,或者是/var/log/my.log

日志级别配置,如:

logging.level.*=INFO
logging.level.org.springframework=DEBUG
[/successbox]
[successbox title=”logback”]
Spring Boot会默认加载classpath:logback-spring.xml或者classpath:logback-spring.groovy
1.application.properties添加如下配置。
[sourcecode language=”xml” title=”application.properties”]

添加日志文件

logging.config=classpath:logback-my.xml
[/sourcecode]
2.配置logback-my.xml文件。
[sourcecode language=”xml” title=”logback-my.xml”]
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

&lt;!-- 文件输出格式 --&gt;
&lt;property name=&quot;PATTERN&quot; value=&quot;%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n&quot; /&gt;
&lt;!-- test文件路径 --&gt;
&lt;property name=&quot;TEST_FILE_PATH&quot; value=&quot;H:/My/Test/log&quot; /&gt;
&lt;!-- pro文件路径 --&gt;
&lt;property name=&quot;PRO_FILE_PATH&quot; value=&quot;H:/My/Prod/log&quot; /&gt;

&lt;!-- 开发环境 --&gt;
&lt;springProfile name=&quot;dev&quot;&gt;
    &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
        &lt;encoder&gt;
            &lt;pattern&gt;${PATTERN}&lt;/pattern&gt;
        &lt;/encoder&gt;
    &lt;/appender&gt;

    &lt;logger name=&quot;com.benzhu.xyz&quot; level=&quot;debug&quot;/&gt;

    &lt;root level=&quot;info&quot;&gt;
        &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
    &lt;/root&gt;
&lt;/springProfile&gt;

&lt;!-- 测试环境 --&gt;
&lt;springProfile name=&quot;test&quot;&gt;
    &lt;!-- 每天产生一个文件 --&gt;
    &lt;appender name=&quot;TEST-FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
        &lt;!-- 文件路径 --&gt;
        &lt;file&gt;${TEST_FILE_PATH}&lt;/file&gt;
        &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.TimeBasedRollingPolicy&quot;&gt;
            &lt;!-- 文件名称 --&gt;
            &lt;fileNamePattern&gt;${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log&lt;/fileNamePattern&gt;
            &lt;!-- 文件最大保存历史数量 --&gt;
            &lt;MaxHistory&gt;100&lt;/MaxHistory&gt;
        &lt;/rollingPolicy&gt;

        &lt;layout class=&quot;ch.qos.logback.classic.PatternLayout&quot;&gt;
            &lt;pattern&gt;${PATTERN}&lt;/pattern&gt;
        &lt;/layout&gt;
    &lt;/appender&gt;

    &lt;root level=&quot;info&quot;&gt;
        &lt;appender-ref ref=&quot;TEST-FILE&quot; /&gt;
    &lt;/root&gt;
&lt;/springProfile&gt;

&lt;!-- 生产环境 --&gt;
&lt;springProfile name=&quot;prod&quot;&gt;
    &lt;appender name=&quot;PROD_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
        &lt;file&gt;${PRO_FILE_PATH}&lt;/file&gt;
        &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.TimeBasedRollingPolicy&quot;&gt;
            &lt;fileNamePattern&gt;${PRO_FILE_PATH}/info.%d{yyyy-MM-dd}.log&lt;/fileNamePattern&gt;
            &lt;MaxHistory&gt;100&lt;/MaxHistory&gt;
        &lt;/rollingPolicy&gt;
        &lt;layout class=&quot;ch.qos.logback.classic.PatternLayout&quot;&gt;
            &lt;pattern&gt;${PATTERN}&lt;/pattern&gt;
        &lt;/layout&gt;
    &lt;/appender&gt;

    &lt;root level=&quot;info&quot;&gt;
        &lt;appender-ref ref=&quot;PROD_FILE&quot; /&gt;
    &lt;/root&gt;
&lt;/springProfile&gt;

</configuration>
[/sourcecode]
3.在class类中要用到日志的时候。
[sourcecode language=”xml” title=”logback-my.xml”]
private static final Logger LOG = LoggerFactory.getLogger(类名.class);

//方法中用下面的方法调用。
LOG.info("导航到index!");
[/sourcecode]
结构图:


[/successbox]
[successbox title=”log4j2″]
1.配置pom.xml文件,添加如下内容。
[sourcecode language=”xml” title=”pom.xml”]
<dependency>
<!– 下面的两句本来就有的 给参考加入的地方 –>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!– 去除logback的依赖包 –>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!– 使用log4j2 –>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
[/sourcecode]
2.在classpath添加log4j2.xml或者log4j2-spring.xml(Spring Boot默认加载)。
1)开发环境的时候控制台输出日志配置。
[sourcecode language=”xml” title=”log4j2-spring.xml”]
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<properties>
<!– 文件输出格式 –>
<property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
</properties>

&lt;appenders&gt;
    &lt;Console name=&quot;CONSOLE&quot; target=&quot;system_out&quot;&gt;
        &lt;PatternLayout pattern=&quot;${PATTERN}&quot; /&gt;
    &lt;/Console&gt;
&lt;/appenders&gt;

&lt;loggers&gt;
    &lt;logger name=&quot;com.no1.cz&quot; level=&quot;debug&quot; /&gt;
    &lt;root level=&quot;info&quot;&gt;
        &lt;appenderref ref=&quot;CONSOLE&quot; /&gt;
    &lt;/root&gt;
&lt;/loggers&gt;

</configuration>
[/sourcecode]
2)测试环境输入到文件的日志配置。
[sourcecode language=”xml” title=”log4j2-spring.xml”]
<?xml version="1.0" encoding="utf-8"?>
<configuration>

&lt;properties&gt;
    &lt;!-- 文件输出格式 --&gt;
    &lt;property name=&quot;PATTERN&quot;&gt;%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n&lt;/property&gt;
&lt;/properties&gt;

&lt;!--先定义所有的appender --&gt;
&lt;appenders&gt;
    &lt;!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 --&gt;
    &lt;RollingFile name=&quot;TEST-FILE&quot; fileName=&quot;D:/My/Test/test.log&quot;
        filePattern=&quot;log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz&quot;&gt;
        &lt;PatternLayout
            pattern=&quot;${PATTERN}-%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n&quot; /&gt;
        &lt;SizeBasedTriggeringPolicy size=&quot;50MB&quot; /&gt;
        &lt;!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 --&gt;
        &lt;DefaultRolloverStrategy max=&quot;20&quot; /&gt;
    &lt;/RollingFile&gt;
&lt;/appenders&gt;

&lt;loggers&gt;
    &lt;logger name=&quot;com.no1.cz&quot; level=&quot;debug&quot; /&gt;
    &lt;root level=&quot;info&quot;&gt;
        &lt;appenderref ref=&quot;TEST-FILE&quot; /&gt;
    &lt;/root&gt;
&lt;/loggers&gt;

</configuration>
[/sourcecode]
3.当需要自定义文件的时候。
在application.properties中的一个配置。
比如在application-dev.properties中配置logging.cofig=classpath:log4j2-dev.xml。
然后再在og4j2-dev.xml写上面的内容。
[/successbox]
[successbox title=”比较”]
性能比较:log4j2和logback都优于log4j(不推荐使用)
配置方式:logback最简洁,Spring Boot默认,推荐使用。
[/successbox]

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇