slf4j的使用

slf4j(Simple Logging Facade for Java :简单的Java日志记录),slf4j本身只是提供抽象层的接口,提供了日志记录实现的规范,不需要关心日志记录的底层实现原理;
slf4j的使用非常简单,使用比log4j更加方便高效

第一步:maven工程导入slf4j使用的坐标

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.21</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.21</version>
</dependency>

第二步:将slf4j的配置文件拷贝到项目中
在这里插入图片描述

下面是log4j.properties的具体配置

# rootLogger参数分别为:根Logger级别,输出器CONSOLE,输出器LOGFILE
log4j.rootLogger = debug, CONSOLE, LOGFILE

# 输出信息到控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# 输出DEBUG级别以上的日志到d:\axis.log
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

另一种是log4j.xml配置文件的方式

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="off" monitorInterval="1800">
    <properties>
    	<!--可以写绝对路径, 默认在C盘用户名下创建名为logs的文件夹作为文件目录 -->
        <property name="LOG_HOME"></property>
        <!-- 错误日志的名称 -->
        <property name="ERROR_LOG_FILE_NAME">error</property>
        <property name="BACKUP_HOME">{LOG_HOME}/backup</property>
        <property name="SERVER_NAME">global</property>
    </properties>
    
    <Appenders>
    	<!-- 控制台输出 -->
        <Console name="Console" target="SYSTEM_OUT" follow="true">
        	<!-- 日志文件输出格式:%date表示日期 ,%level 表示日志级别,%thread 表示线程,%msg表示消息,%n表示换行 -->
            <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
        </Console>
        <!-- 错误日志 -->
        <RollingRandomAccessFile name="ErrorLog"
        						<!-- 日志名称 -->
                                 fileName="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log"
                                 <!-- 文件格式 -->
                                 filePattern="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log.%d{yyyy-MM-dd}.gz">
            <!-- 输出日志格式 -->                 
            <PatternLayout pattern="%d %-5p (%F:%L) - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="30MB"/>
            </Policies>
            <DefaultRolloverStrategy max="30"/>
        </RollingRandomAccessFile>
        <!-- 文件日志 -->
        <!-- 按天记录日志 -->
        <RollingRandomAccessFile name="DevLog" fileName="${LOG_HOME}/dev.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM}/dev-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
            	<!-- 1小时滚动一次,modulate="true"表示调整时间 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <!-- 单个文件最大字节 -->
                <SizeBasedTriggeringPolicy size="40MB"/>
            </Policies>
            <!-- 删除最旧的日志文件,默认是3个文件 -->
            <DefaultRolloverStrategy max="30"/>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
    	<!-- 设置日志级别 -->
        <logger name="org.springframework.core" level="info"/>
        <logger name="org.springframework.beans" level="info"/>
        <logger name="org.springframework.context" level="info"/>
        <logger name="org.springframework.web" level="info"/>
        <logger name="org.hibernate" level="info"/>
        <root level="info" includeLocation="true">
            <appender-ref ref="Console"/>
            <appender-ref ref="DevLog"/>
        </root>
    </Loggers>
</Configuration>

接下来就可以在代码中使用logger记录日志了!slf4j支持占位符的方式,使用体验更好;和log4j相比降低了字符串拼接的资源损耗,内存占用更少!为什么使用slf4j而不是用log4j:详细说明参照文章
在这里插入图片描述在这里插入图片描述
输出日志级别的说明

error :严重错误 ;
warn:警告;
info:一般要显示的信息;
debug:程序的调试信息;

日志严重级别 error>warn>info>debug
级别越低,日志记录信息越多!

最后附一个log4j2的教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值