spring boot(13)-logback和access日志

logback

logback出自log4j的作者,性能和功能相比log4j作出了一些改进,而配置方法和log4j类似,是spring boot的默认日志组件。在application.properties文件中可以进行一些简单的日志配置,参考第五篇。如果要作一些更详细的配置,需要在resources目录下配置logback-spring.xml

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>  

运行后结果是这样的,E盘是我的程序当前分区,会自动生成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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中使用logback打印日志非常简单,只需要以下几个步骤: 1. 添加依赖 在pom.xml文件中添加logback的依赖 ```xml <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> ``` 2. 配置logback.xml 在src/main/resources下新建logback.xml文件,配置logback日志输出格式和输出位置等信息。 例如,以下是一个简单的logback.xml配置文件: ```xml <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <logger name="com.example" level="DEBUG"/> <root level="INFO"> <appender-ref ref="CONSOLE"/> </root> </configuration> ``` 其中,`appender`定义了日志输出的方式,这里使用的是`ConsoleAppender`,即输出到控制台;`encoder`定义了日志的输出格式;`logger`定义了日志输出的级别,这里设置为DEBUG级别;`root`定义了日志输出的根级别,这里设置为INFO级别。 3. 在应用程序中使用logback 在需要打印日志的类中使用logback即可,例如: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyService { private static final Logger logger = LoggerFactory.getLogger(MyService.class); public void doSomething() { logger.debug("Debug log"); logger.info("Info log"); logger.warn("Warn log"); logger.error("Error log"); } } ``` 这里使用了`LoggerFactory.getLogger()`方法获取Logger对象,然后使用`debug()`、`info()`、`warn()`和`error()`等方法输出不同级别的日志信息。 以上就是在Spring Boot中使用logback打印日志的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值