slf4j 日志配置

因为现在开发的项目是一个软件与硬件实时通讯的系统,软件实时在采集周边设备的记录,周边的设备也有可能在实时的上传记录,所以我必须得做一个日志来记录每一个动作,当软件与硬件之间的通讯发生异常时,通过日志就可以比较方便的找出错误,如软件指令是否正确,下发指令是否得到硬件的响应。好了,多的不说,直接上配置吧。

<!-- 使用定期扫描策略,每隔5秒扫描一下,这样改日志配置后就不用重启软件了 -->
<configuration scan="true" scanPeriod="5 seconds">
    <appender name="DEVICE_MESSAGE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 默认日志文件,当这个文件达到10MB后,会创建一个新的message.txt,而将原来的那个改名为日期的名称格式 -->
        <file>log/device/message.txt</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 生成日志文件的名称格式 -->
            <fileNamePattern>log/device/message-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
            <maxHistory>15</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 日志文件最大size -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

        <encoder>
            <!-- 日志的显示格式 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>

    </appender>

    <!--没有指定设置包的具体规则时,则会默认使用root配置-->
    <root level="debug">
        <appender-ref ref="DEVICE_MESSAGE_DEBUG"/>
    </root>

</configuration>

生成的日志如下情况如下:

message.txt

message-2014-05-09.0.txt

message-2014-05-09.1.txt

message-2014-05-09.2.txt

message-2014-05-09.3.txt


至于日志配置文件也是我们要考虑的一个问题,一般我们会将其放在classpath下。总之打包出来的jar一般会把这个配置文件一起打包进去,其实这个配置文件也可以手动定义路径,方法如下:

    static{
        LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory();
        JoranConfigurator configurator = new JoranConfigurator();
        configurator.setContext(lc);
        lc.reset();
        try {
            configurator.doConfigure("logback.xml");
        } catch (JoranException e) {e.printStackTrace();}
    }

在启动时静态的加载这个配置,就可以重新定义配置文件的路径了。

你可能感兴趣的:(slf4j 日志配置)