logback + slf4j idea配置使用技巧

logback 性能的优越性小编就不在此缀述了,本编内容详细 介绍使用方式,已经配置项语法说明。

1.pom.xml 工程导入依赖:

<dependency>  
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>

2.接下来在自己的工程resources 目录下新建一个 logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--
configuration 主标签 有以下三大属性。
scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
    scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
当scan为true时,此属性生效。默认的时间间隔为1分钟。
    debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
本人闲麻烦一律默认!
   -->
<property name="logs-folder" value="logs"/>
<property name="contextName" value="spring-mybatis"/>
<!--
子节点<property> :用来定义变量值,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量。
-->
<contextName>${contextName}</contextName>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] %X{hiContext} %logger{50}:%L - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--
子节点<appender>:负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名
ConsoleAppender 把日志输出到控制台。

-->
<appender name="FileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logs-folder}/${contextName}/${contextName}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logs-folder}/${contextName}/${contextName}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100mb</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] %X{hiContext} %logger{50}:%L - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--
RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件
-->

<!-- 日志输出级别 -->
<logger name="com.org.controller" level="DEBUG" additivity="false">
<appender-ref ref="Console"/>
<appender-ref ref="FileLog"/>
</logger>
<logger name="com.org.dao" level="DEBUG" additivity="false">
<appender-ref ref="Console"/>
<appender-ref ref="FileLog"/>
</logger>

<root level="DEBUG">
<appender-ref ref="Console"/>
</root>

</configuration>
3.注意点说明
1.小编在第一次使用logback 配置好属性后 控制台打印日志,出现中文乱码, 按照网上各种步骤操作还是不行。
网上操作步骤
  <charset>UTF-8</charset>
或则 tomcat  catalina.out文件 set 某某属性。
其实不然 主要原因 还是在于,idea自己新建的项目工程使用的编码格式 默认的是gbk

file -> settings  下 看图 ,找到自己新建的工程文件就能发现问题了。

所以当你logback.xml 设置 UTF-8 还会出现乱码,那就不妨看看。

解决方案:

<charset>GBK</charset>





































posted @ 2018-04-09 10:50  pcaddos  阅读(466)  评论(1)    收藏  举报