logback分别将日志记录到数据库和日志文件文件中,且可以独立设置级别
2017-07-06 16:15
597 查看
承接上一篇
<configuration> <!-- 输出到控制台 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- 输出格式 --> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- error级别单独记录 --> <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/error.log</file> <!-- 以day为单位自动回滚 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/error/error-%d{yyyy-MM-dd}.%i.log.gz</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} ${PID} [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> <!-- error级别过滤器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- warn级别单独记录 --> <appender name="warnAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/warn.log</file> <!-- 以day为单位自动回滚 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/warn/warn-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <!-- 最多记录30天日志 --> <maxHistory>30</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!-- 文件大小到达30MB自动打包 --> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> <!-- warn级别过滤器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/info/info-%d{yyyy-MM-dd}.%i.log.gz</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} ${PID} [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> <!-- <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> --> </appender> <!--<logger name="cn.com.bsfit.frms.credit.mapper" level="DEBUG" additivity="false" > <appender-ref ref="STDOUT"/> </logger>--> <!-- 将WARN级别日志写入数据库 --> <appender name="WARN-MYSQL" class="ch.qos.logback.classic.db.DBAppender"> <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource"> <dataSource class="org.apache.commons.dbcp.BasicDataSource"> <driverClassName>com.mysql.jdbc.Driver</driverClassName> <url>jdbc:mysql://127.0.0.1:3306/frms-mt-mgr2.1?characterEncoding=UTF-8</url> <username>root</username> <password>root</password> </dataSource> </connectionSource> <!-- WARN级别过滤器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <appender name="ERROR-MYSQL" class="ch.qos.logback.classic.db.DBAppender"> <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource"> <dataSource class="org.apache.commons.dbcp.BasicDataSource"> <driverClassName>com.mysql.jdbc.Driver</driverClassName> <url>jdbc:mysql://127.0.0.1:3306/frms-mt-mgr2.1?characterEncoding=UTF-8</url> <username>root</username> <password>root</password> </dataSource> </connectionSource> <!-- WARN级别过滤器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 根,所有logger的祖先 --> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="errorAppender" /> <appender-ref ref="infoAppender" /> <appender-ref ref="WARN-MYSQL" /> <appender-ref ref="ERROR-MYSQL" /> </root> </configuration>
相关文章推荐
- 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大
- log4j2日志xml配置——不同级别的日志分别记录在不同的文件
- Java使用logback记录日志时分级别保存文件
- 设置Log4j 的properties文件,将日志写入数据库
- log4j不同文件记录不同级别日志的问题
- PHP设置时区,记录日志文件的方法
- ACE日志根据信息安全级别记录到不同文件
- logback框架使用误区 如何将所有包的ERROR级别日志集中打印到一个日志文件中
- logback动态设置某个类的日志级别
- Javaweb记录日志到数据库和文件中
- Log4j2的日志配置文件,log4j2.xml文件的配置(实现控制台输出,各级别分别文件输出,自动压缩等)
- SpringBoot 使用logback日志分级别生成文件
- PHP设置时区,记录日志文件的方法
- C语音日志输出,从zabbix里抽出来的,可以动态设置日志输出级别
- Log4Net 自定义级别,分别记录到不同的文件中
- 怎么配置log4j.properties才能将同一包中的error和debug级别的日志分别记到两个文件中去?
- apache 访问日志如何设置每日新增一个日志文件、如何限制大小、设置记录内容
- rsyslog的日志级别以及自定义日志文件的设置方法
- Log4j2的日志配置文件,log4j2.xml文件的配置(实现控制台输出,各级别分别文件输出,自动压缩等)
- Log4j2的日志配置文件,log4j2.xml文件的配置(实现控制台输出,各级别分别文件输出,自动压缩等)