logback 常用配置详解(序)logback 简介
来源:互联网 发布:miui9有对小米6优化吗 编辑:程序博客网 时间:2024/06/12 18:45
source: http://aub.iteye.com/blog/1101222
logback 常用配置详解(序)logback 简介
- 博客分类:
- Log
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己
详细整理了logback常用配置,
不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置
logback 常用配置详解(序)logback 简介
logback 常用配置详解(一)<configuration> and <logger>
logback 常用配置详解(二)<appender>
logback 常用配置详解(三)<filter>
logback 中文手册 (官网手册的翻译版,在这里向中文版译者-陈华,说声辛苦啦)
logback 简介
Ceki Gülcü在Java日志领域世界知名。他创造了Log4J ,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行。随后他又着手实现SLF4J 这个“简单的日志前端接口(Façade)”来替代Jakarta Commons-Logging 。
LOGBack,一个“可靠、通用、快速而又灵活的Java日志框架”。
要在工程里面使用logback需要以下jar文件:
slf4j-api-1.6.1.jar
官网网址:http://www.slf4j.org/
下载地址:http://www.slf4j.org/dist/slf4j-1.6.1.zip
logback-access-0.9.29.jar
logback-classic-0.9.29.jar
logback-core-0.9.29.jar
官网网址:http://logback.qos.ch/
下载地址:http://logback.qos.ch/dist/logback-0.9.29.zip
在工程src目录下建立logback.xml
注:
1.logback首先会试着查找logback.groovy文件;
2.当没有找到时,继续试着查找logback-test.xml文件;
3.当没有找到时,继续试着查找logback.xml文件;
4.如果仍然没有找到,则使用默认配置(打印到控制台)。
在工程src目录下建立logback包,然后在包下建立LogbackDemo.java用于测试,代码如
- package logback;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- public class LogbackDemo {
- private static Logger log = LoggerFactory.getLogger(LogbackDemo.class);
- public static void main(String[] args) {
- log.trace("======trace");
- log.debug("======debug");
- log.info("======info");
- log.warn("======warn");
- log.error("======error");
- String name = "Aub";
- String message = "3Q";
- String[] fruits = { "apple", "banana" };
- // logback提供的可以使用变量的打印方式,结果为"Hello,Aub!"
- log.info("Hello,{}!", name);
- // 可以有多个参数,结果为“Hello,Aub! 3Q!”
- log.info("Hello,{}! {}!", name, message);
- // 可以传入一个数组,结果为"Fruit: apple,banana"
- log.info("Fruit: {},{}", fruits);
- }
- }
下一篇日志将开始讲述logback.xml配置,所有内容都参考logback官方网站。欢迎各位大牛拍砖。。。
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己
顶
踩
- 2011-06-22 17:56
- 浏览 17856
- 评论(7)
- 分类:编程语言
- 相关推荐
评论
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@91:33 - no applicable action for [category], current pattern is [[configuration][category]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@92:25 - no applicable action for [level], current pattern is [[configuration][category][level]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@93:31 - no applicable action for [appender-ref], current pattern is [[configuration][category][appender-ref]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@94:40 - no applicable action for [appender-ref], current pattern is [[configuration][category][appender-ref]]
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
- <property name="LOG_HOME" value="/opt/search/se/logs" />
- <!-- 控制台日志输出 -->
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <Encoding>UTF-8</Encoding>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
- </pattern>
- </layout>
- </appender>
- <!-- 为了把不同的信息打印到不同的文件中,这里设置了不同的日志级别打印到不同文件中 -->
- <appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <Encoding>UTF-8</Encoding>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--用户行为操作的日志打印到以log-user开头的文件中 -->
- <FileNamePattern>${LOG_HOME}/log-info.%d{yyyy-MM-dd}.log</FileNamePattern>
- <!-- 最多30个文件 -->
- <MaxHistory>30</MaxHistory>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
- </pattern>
- </layout>
- <!--日志文件最大的大小-->
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <MaxFileSize>10MB</MaxFileSize>
- </triggeringPolicy>
- <!-- 过滤器,只记录INFO级别的日志 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
- <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <Encoding>UTF-8</Encoding>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--在工程目录下自动生成logs文件夹 -->
- <FileNamePattern>${LOG_HOME}/log-error.%d{yyyy-MM-dd}.log</FileNamePattern>
- <!-- 最多30个文件 -->
- <MaxHistory>30</MaxHistory>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
- </pattern>
- </layout>
- <!--日志文件最大的大小-->
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <MaxFileSize>10MB</MaxFileSize>
- </triggeringPolicy>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>ERROR</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
- <!-- 按照每天生成日志文件 -->
- <appender name="FILE_SECURITY" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--日志文件输出的文件名-->
- <FileNamePattern>${LOG_HOME}/user/se-admin.log.%d{yyyy-MM-dd}.log</FileNamePattern>
- <MaxHistory>30</MaxHistory>
- </rollingPolicy>
- <encoder
- class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
- <!-- 日志输出编码 -->
- <layout class="ch.qos.logback.classic.PatternLayout">
- <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} == %msg%n
- </pattern>
- </layout>
- </encoder>
- <!--日志文件最大的大小-->
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <MaxFileSize>10MB</MaxFileSize>
- </triggeringPolicy>
- </appender>
- <!-- 日志输出级别 -->
- <root level="DEBUG">
- <appender-ref ref="STDOUT" />
- <appender-ref ref="FILEINFO" />
- <appender-ref ref="FILEERROR" />
- </root>
- <category name="com.suning">
- <level value="DEBUG"/>
- <appender-ref ref="STDOUT"/>
- <appender-ref ref="FILEINFO" />
- </category>
- <logger name="com.suning.search.evaluation.web.security.filter" level="INFO">
- <appender-ref ref="FILE_SECURITY"/>
- </logger>
- </configuration>
你用的是哪个版本的logback? 我使用博客中的版本测试你的皮配置文件,没有报错
你的配置中
TimeBasedRollingPolicy与SizeBasedTriggeringPolicy混合使用,我没试过,
一般是FixedWindowRollingPolicySizeBasedTriggeringPolicy混合使用
你可以去掉SizeBasedTriggeringPolicy试试
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@91:33 - no applicable action for [category], current pattern is [[configuration][category]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@92:25 - no applicable action for [level], current pattern is [[configuration][category][level]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@93:31 - no applicable action for [appender-ref], current pattern is [[configuration][category][appender-ref]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@94:40 - no applicable action for [appender-ref], current pattern is [[configuration][category][appender-ref]]
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
- <property name="LOG_HOME" value="/opt/search/se/logs" />
- <!-- 控制台日志输出 -->
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <Encoding>UTF-8</Encoding>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
- </pattern>
- </layout>
- </appender>
- <!-- 为了把不同的信息打印到不同的文件中,这里设置了不同的日志级别打印到不同文件中 -->
- <appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <Encoding>UTF-8</Encoding>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--用户行为操作的日志打印到以log-user开头的文件中 -->
- <FileNamePattern>${LOG_HOME}/log-info.%d{yyyy-MM-dd}.log</FileNamePattern>
- <!-- 最多30个文件 -->
- <MaxHistory>30</MaxHistory>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
- </pattern>
- </layout>
- <!--日志文件最大的大小-->
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <MaxFileSize>10MB</MaxFileSize>
- </triggeringPolicy>
- <!-- 过滤器,只记录INFO级别的日志 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
- <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <Encoding>UTF-8</Encoding>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--在工程目录下自动生成logs文件夹 -->
- <FileNamePattern>${LOG_HOME}/log-error.%d{yyyy-MM-dd}.log</FileNamePattern>
- <!-- 最多30个文件 -->
- <MaxHistory>30</MaxHistory>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
- </pattern>
- </layout>
- <!--日志文件最大的大小-->
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <MaxFileSize>10MB</MaxFileSize>
- </triggeringPolicy>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>ERROR</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
- <!-- 按照每天生成日志文件 -->
- <appender name="FILE_SECURITY" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--日志文件输出的文件名-->
- <FileNamePattern>${LOG_HOME}/user/se-admin.log.%d{yyyy-MM-dd}.log</FileNamePattern>
- <MaxHistory>30</MaxHistory>
- </rollingPolicy>
- <encoder
- class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
- <!-- 日志输出编码 -->
- <layout class="ch.qos.logback.classic.PatternLayout">
- <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} == %msg%n
- </pattern>
- </layout>
- </encoder>
- <!--日志文件最大的大小-->
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <MaxFileSize>10MB</MaxFileSize>
- </triggeringPolicy>
- </appender>
- <!-- 日志输出级别 -->
- <root level="DEBUG">
- <appender-ref ref="STDOUT" />
- <appender-ref ref="FILEINFO" />
- <appender-ref ref="FILEERROR" />
- </root>
- <category name="com.suning">
- <level value="DEBUG"/>
- <appender-ref ref="STDOUT"/>
- <appender-ref ref="FILEINFO" />
- </category>
- <logger name="com.suning.search.evaluation.web.security.filter" level="INFO">
- <appender-ref ref="FILE_SECURITY"/>
- </logger>
- </configuration>
发表评论
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序) logback简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解(序)logback 简介
- logback 常用配置详解
- logback 常用配置详解
- Logback常用配置详解
- java之Vector使用(与ArrayList区分)
- Android 异步任务AsyncTask,执行下载任务
- 常见C++面试题及基本知识点总结
- ZBrush中的shadowbox该怎么创建物体
- Java虚拟机GC根节点的选择
- logback 常用配置详解(序)logback 简介
- Sqlite数据库升级
- 日消息量突破50亿,小米是如何设计高可用推送系统的?
- oracle 求占百分比的分析函数 ratio_to_report() over();
- linux下开启SSH,并且允许root用户远程登录,允许无密码登录
- AVLoadingIndicatorView加载效果动画
- 格式化时间毫秒
- java设计模式--观察者模式
- Centos6.8 无法修改resolv.conf的问题
参考知识库