Spring boot 使用SLF4J和Logback

SLF4J类似于Commons Logging,也是一个日志接口,而Logback类似于Log4j,是一个日志的实现。
创建logback.xml文件,并且把文件放到classpath下,
在这里插入图片描述

spring boot默认就是使用Logback。

<?xml version="1.0" encoding="UTF-8"?>
<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>

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
	<encoder>
		<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
		<charset>utf-8</charset>
	</encoder>
	<file>d:/log/output.log</file>
	<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
		<fileNamePattern>d:/llog/output.log.%i</fileNamePattern>
	</rollingPolicy>
	<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
		<MaxFileSize>1MB</MaxFileSize>
	</triggeringPolicy>
</appender>
<root level="ERROR">
   <!--以下内容表示把日志输出到控制台-->
	<appender-ref ref="CONSOLE" />
	 <!--以下内容表示把日志输出到上面配置的文件里面-->
	<appender-ref ref="FILE" />
</root>

然后在类文件中加入代码
Logger logger= LoggerFactory.getLogger(TestController.class);
logger.error(“系统发生错误,参数1:{}”,参数值);在打印日志尽量使用占位符的方式,方便查看。不过查看源代码后都是采用Stringbuilder进行拼接。此处引申出StringBuilder是线程不安全,StringBuffer是线程安全的。
日志中配置的文件中就写入了“系统发生错误”信息。

如果使用了lombok,则在类上增加@Slf4j的注解
通过log.error(“系统发生错误”);来输出日志

日志在需要输出类名和函数名时,采用以下代码:
String className = this.getClass().getName();// 这是完整的类路径名
String simpleClassName = this.getClass().getSimpleName();// 仅仅是类名

以下是获取方法名
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();

如果要写入到日志配置文件中的固定的文件,比如配置文件中有以下配置,

<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- 按天回滚 daily -->
        <fileNamePattern>logs/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
        <!-- 日志最大的历史 60天 -->
        <maxHistory>60</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>${log.pattern}</pattern>
    </encoder>
</appender>
<!--系统用户操作日志-->
<logger name="sys-user" level="info">
    <appender-ref ref="sys-user"/>
</logger>

那么可以通过以下代码来进行
private static final Logger logger = LoggerFactory.getLogger(“sys-user”);
logger.info(“user opt”);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值