您的位置:首页 > 其它

logback配置

2015-11-27 11:10 363 查看
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 控制台输出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<!-- 过滤掉出TRACE级别之外的所有日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<encoder>
<pattern>%date{HH:mm:ss} %-5level %logger{80} - %msg%n
</pattern>
</encoder>
</appender>

<!-- 时间滚动输出,记录所有日志(以html文件方式) -->
<appender name="file—html-all"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤掉出TRACE级别之外的所有日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出路径 -->
<FileNamePattern>D:/logs/html/%d{yyyy-MM-dd}_log.html
</FileNamePattern>
<!-- 保留日志天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="com.component.base.support.layout.ZhCnHTMLLayout">
<pattern>%date{HH:mm:ss}%level%logger%msg</pattern>
</layout>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>

<!-- 时间滚动输出,记录所有日志 -->
<appender name="file—all"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤掉出TRACE级别之外的所有日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出路径 -->
<FileNamePattern>D:/logs/all/all.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!-- 保留日志天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<!-- 日志输出格式 -->
<pattern>%date{HH:mm:ss} %-5level %logger{80} - %msg%n
</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>

<!-- 时间滚动输出 level为 DEBUG的日志 -->
<appender name="file—debug"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 日志记录/输出级别,只包含debug级别 -->
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY </onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出路径 -->
<FileNamePattern>D:/logs/debug/debug.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!-- 保留日志天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<!-- 日志输出格式 -->
<pattern>%date{HH:mm:ss} %-5level %logger{80} - %msg%n
</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>

<!-- 时间滚动输出 level为 ERROR的日志 -->
<appender name="file—error"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 日志记录/输出级别,只包含error级别 -->
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY </onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出路径 -->
<FileNamePattern>D:/logs/error/error.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!-- 最大保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!-- 日志输出格式 -->
<encoder>
<pattern>%date{HH:mm:ss} [%thread] %-5level %logger{80} - %msg%n
</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>

<!-- 时间滚动输出 level为 INFO的日志 -->
<appender name="file—info"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 日志记录/输出级别,只包含info级别 -->
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY </onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出路径 -->
<FileNamePattern>D:/logs/info/info.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!-- 最大保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!-- 日志输出格式 -->
<encoder>
<pattern>%date{HH:mm:ss} %-5level %logger{80} - %msg%n
</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>

<!-- 时间滚动输出 level为 WARN的日志 -->
<appender name="file—warn"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 日志记录/输出级别,只包含warn级别 -->
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY </onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出路径 -->
<FileNamePattern>D:/logs/warn/warn.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!-- 最大保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!-- 日志输出格式 -->
<encoder>
<pattern>%date{HH:mm:ss} %-5level %logger{80} - %msg%n
</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>

<!-- 时间滚动输出,将当前应用包下产生的日志放到,D:/logs/business/ 目录下,需要配合logger标签,才能实现 -->
<appender name="file—business"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出路径 -->
<FileNamePattern>D:/logs/business/business.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!-- 最大保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!-- 日志输出格式 -->
<encoder>
<pattern>%date{HH:mm:ss} %-5level %logger{80} - %msg%n
</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="com.partner" level="DEBUG" addtivity="true">
<appender-ref ref="file—business" />
</logger>

<!-- 使用root标签定义日志主线程,将不同的日志级别输入到不同的appender中 -->
<root level="DEBUG">
<appender-ref ref="file—html-all" />
<appender-ref ref="file—all" />
<appender-ref ref="file—debug" />
<appender-ref ref="stdout" />
</root>
<root level="ERROR">
<appender-ref ref="file—error" />
</root>
<root level="INFO">
<appender-ref ref="file—info" />
</root>
<root level="WARN">
<appender-ref ref="file—warn" />
</root>

<!-- 使用logger标签定义其它日志线程 -->
<!-- spring配置 -->
<!-- spring事务信息输出控制 -->
<logger name="org.springframework.transaction" level="INFO" />
<!-- httl配置 -->
<logger name="httl" level="WARN" />
<logger name="com.opensymphony" level="WARN" />
<logger name="org.apache" level="WARN" />

<!-- hibernate配置 -->
<!-- 控制sql语句输出 -->
<logger name="org.hibernate.SQL" level="INFO" />
<!-- 控制hibernate事务信息的打印 -->
<logger name="org.hibernate.engine.transaction" level="INFO" />
<!-- 控制参数的输出 -->
<!-- <logger name="org.hibernate.loader.Loader" level="DEBUG" /> -->

</configuration>


package com.component.base.support.layout;

import static ch.qos.logback.core.CoreConstants.LINE_SEPARATOR;

import ch.qos.logback.classic.html.HTMLLayout;

/**
* 扩展logback的默认HTMLLayout,加入Content-Type,使中文不会乱码
*
* @author pan
*
*/
public class ZhCnHTMLLayout extends HTMLLayout {

@Override
public String getFileHeader() {
StringBuilder sbuf = new StringBuilder();
sbuf.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"");
sbuf.append(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
sbuf.append(LINE_SEPARATOR);
sbuf.append("<html>");
sbuf.append(LINE_SEPARATOR);
sbuf.append("  <head>");
sbuf.append(LINE_SEPARATOR);
sbuf.append("    <title>");
sbuf.append(title);
sbuf.append("</title>");
sbuf.append("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>");
sbuf.append(LINE_SEPARATOR);

cssBuilder.addCss(sbuf);

sbuf.append(LINE_SEPARATOR);
sbuf.append("  </head>");
sbuf.append(LINE_SEPARATOR);
sbuf.append("<body>");
sbuf.append(LINE_SEPARATOR);

return sbuf.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: