logback 常用配置详解(序)logback 简介
2016-10-17 14:04
429 查看
source: http://aub.iteye.com/blog/1101222
博客分类:
Logjava
loglogback
原创文章,转载请指明出处: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用于测试,代码如
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,
尊重他人即尊重自己
26
顶
1
踩
分享到:
logback
logback.xml常用配置详解(一)<c ... | log4j 配置详解实例
2011-06-22 17:56
浏览 17856
评论(7)
分类:编程语言
相关推荐
参考知识库
区块链知识库234 关注 | 78 收录
深度学习知识库1611 关注 | 213 收录
React Native知识库1102 关注 | 492 收录
iOS知识库974 关注 | 1174 收录
评论
7 楼 mikey_5 2016-05-16
不错,学习了
6 楼 aubdiy 2014-04-28
fncj 写道
兄弟我这边有个错,帮我看下吧,谢谢!
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代码
<?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试试
5 楼 fncj 2014-04-24
兄弟我这边有个错,帮我看下吧,谢谢!
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代码
<?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>
4 楼 nightkid 2014-04-11
学习了,刚发现这个新的日志输出控件,感谢!
3 楼 lcxcqtn 2013-11-20
讲的很清楚,学习了
2 楼 lulihong324 2013-11-16
非常感谢,对我非常有用
1 楼 chengcheng222e 2013-10-25
写的挺好的! 主要是包括背景 细节 挺一个
发表评论
logback 常用配置详解(序)logback 简介
博客分类: Logjava
loglogback
原创文章,转载请指明出处: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用于测试,代码如
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,
尊重他人即尊重自己
26
顶
1
踩
分享到:
logback
logback.xml常用配置详解(一)<c ... | log4j 配置详解实例
2011-06-22 17:56
浏览 17856
评论(7)
分类:编程语言
相关推荐
参考知识库
区块链知识库234 关注 | 78 收录
深度学习知识库1611 关注 | 213 收录
React Native知识库1102 关注 | 492 收录
iOS知识库974 关注 | 1174 收录
评论
7 楼 mikey_5 2016-05-16
不错,学习了
6 楼 aubdiy 2014-04-28
fncj 写道
兄弟我这边有个错,帮我看下吧,谢谢!
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代码
<?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试试
5 楼 fncj 2014-04-24
兄弟我这边有个错,帮我看下吧,谢谢!
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代码
<?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>
4 楼 nightkid 2014-04-11
学习了,刚发现这个新的日志输出控件,感谢!
3 楼 lcxcqtn 2013-11-20
讲的很清楚,学习了
2 楼 lulihong324 2013-11-16
非常感谢,对我非常有用
1 楼 chengcheng222e 2013-10-25
写的挺好的! 主要是包括背景 细节 挺一个
发表评论
相关文章推荐
- 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 常用配置详解(二) <appender>
- logback 常用配置详解
- 【转】logback logback.xml常用配置详解(三) <filter>
- logback 常用配置详解(方便以后查阅)
- logback 常用配置详解(二) <appender>