ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] # logback-spring.xml 需要在resources目录下配置logback-spring.xml spring boot官方建议使用logback-spring.xml这个文件名来配置默认的logback日志。 关于logback详细知识可以查官方文档,这里提供一个比较实用的配置:在控制台输出INFO级别日志,另外将warn警告日志和error错误日志分别保存到不同目录文件,具体看注释 ~~~ <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- appender是配置输出终端,ConsoleAppender是控制台,name是自定义名 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- 配置日志格式,这是一个比较通用的格式 --> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- 输出终端是滚动文件 --> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 基于时间滚动,就是每天的日志输出到不同的文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 --> <fileNamePattern>/log/warn/warn.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 最大保存99个文件,超出的历史文件会被删除 --> <maxHistory>99</maxHistory> </rollingPolicy> <!-- 按照日志级别进行过滤 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 --> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- 除了filter,其他 配置和上面一样, 只是name和文件路径不同--> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>/log/error/error.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>99</maxHistory> </rollingPolicy> <!-- 阈值过滤器 --> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <!-- 收集ERROR及ERROR以上级别的日志 --> <level>ERROR</level> </filter> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- root是根日志打印器,只有一个,负责整个系统的日志输出 --> <root level="INFO"> <!-- 将上面三个输出终端配置到根打印器,将对整个系统 生效。 --> <appender-ref ref="STDOUT" /> <appender-ref ref="WARN" /> <appender-ref ref="ERROR" /> </root> <!-- logger是root的子打印器,可以有多个,输出name配置的包中的日志。 --> <!-- hello.dao是我的mybatis映射dao的包名,设置为debug可以打印mybatis的sql语句 --> <logger name="hello.dao" level="DEBUG" /> </configuration> ~~~ 运行后结果是这样的,会自动生成log目录如下,会分别保存error和warn级别的日志 # level日志级别 在上面配置中的leven参数,主要使用了四种,,级别从低到高分别为debug,info,warn,error,当设置某一级别日志时,比他低级的日志不会输出。  debug:调试,从名字可以看出其作用。程序中报错无法解决时,使用调试来查看更多错误信息。在mybatis中使用这种日志才会输出sql语句。debug的输出量太大,而且不懂源码的人很多都看不懂,还有很多没什么实际作用的日志信息刷屏,只适合报异常程序的调试。 info:信息,信息量比debug少很多,只会输出一些重要的信息,适合开发时使用。 warn:警告,通常是可以修复的,不修复也不一定会引发异常,有时候是一些提示信息,但是比info信息更加重要 error:错误,很明显,就是程序异常 # access访问日志 tomcat中默认是有access访问日志的,用于记录访问者的IP,不过在spring boot中这个日志默认是关闭的。 如果你的服务器结构中有nginx类的http服务器,access日志应该是在nginx中配置的。 而tomcat这样的后台服务器只需要记录后台日志,不需要管access日志。 如果想在spring boot中打开access日志,可以在application.properties中配置 ~~~ #配置tomcat工作目录,为当前分区的tomcat目录 server.tomcat.basedir=/tomcat #开启accesslog,会记录到上面的目录下 server.tomcat.accesslog.enabled=true ~~~