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(); } }
相关文章推荐
- 第十节 蜂鸣器
- 判断微信浏览器是安卓还是IOS客户端
- asp.net微信公众平台
- 深入理解Oracle的imp/exp 和各版本之间的规则
- php同步mysql两个数据库中表的数据
- Android NDK开发初识
- java处理InputStream和字节数组互转
- 数组指针,函数指针的初步探阶
- 已知图片大小,让其在页面中垂直水平居中
- 磁盘相关命令df、du、fdisk、mkfs.ext4、mount、fstab
- SSH:Hibernate框架(常用API详解及源码分析)
- Python-变量
- 2015.11.27------Local Gabor Binary Pattern Histogram Sequence(LGBPHS)论文笔记
- JNI -1 小试牛刀
- MySql索引算法原理解析(通俗易懂,只讲B-tree)
- 【Web基础】HTTP长连接和短连接以及推送技术原理
- 解决easyui-datagrid在IE中无法reload问题
- Android源码下载 APK原型
- HTML select 下拉菜单赋值(从数据库中)
- LintCode: Convert Sorted Array to Binary Search Tree With Minimal Height