springboot搭建restful网站学习篇(二):日志

一个项目在实现功能之前,一般都会先完善一些基础组件,例如日志、数据库连接等。
本文将在上文基础上加入日志组件。

本项目使用logback作为日志组件。相对log4j,logback的性能更为优秀,官方文档也很充分。

在springboot中,我们不需要为日志组件添加依赖项,,因为Spring Boot 默认的日志框架就是 Logback+SLF4J。仅需要依赖web组件即可:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

而该依赖项在我们创建项目的时候就已经添加了。

默认情况下Spring Boot将日志输出到控制台,不会写到日志文件。如果要编写除控制台输出之外的日志文件,则需在application.properties中设置logging.file或logging.path属性

logging.file=文件名(可以是相对路径或者绝对路径)
logging.level.包名=指定包下的日志级别

官方推荐使用-spring.xml文件做为配置文件,如logback-spring.xml,放置于/src/main/resoures下。当然名称可以自定义,此时只需要在application.properties文件中使用logging.config=classpath:XXXXXXXX指定即可。

项目配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
    <!--应用名称-->
    <property name="APP_NAME" value="aegis"/>
    <!--日志文件保存路径-->
    <property name="LOG_FILE_PATH" value="logs"/>
    <contextName>${APP_NAME}</contextName>
    <!--每天记录日志到文件appender-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>

    </root>
</configuration>

配置这里不做解释了,基本上日志都是三维构成Logger,Appender和Layout。

添加了上面的配置后,即可在任意类中,使用如下语句获取日志对象:

private final Logger logger = LoggerFactory.getLogger(getClass());

再次调用该接口,即可看到控制台输出了hello world,项目根目录中也打印出了logs文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容