|
package或多个<appender-ref>。
实例:假如不想看到"chapters.configuration"包中任何DEBUG信息,如下
|
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned by default the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="chapters.configuration" level="INFO" />
<!-- 严格的说,下面的level属性是不需要的,因为root的默认值为DEBUG -->
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
|
包"chapters.configuration"的level属性设置为"INFO",这样DEBUG信息均被过滤掉了。如果将该配置文件作为参数传递给MyApp3,其输出如下:
|
20:59:32.913 [main] INFO chapters.configuration.MyApp3 - Entering application.
20:59:32.917 [main] INFO chapters.configuration.MyApp3 - Exiting application.
|
此时由"chapters.configuration.Foo"生成的DEBUG信息被抑制。
可以按照自己的想法随意设置多个logger的level,比如,将chapters.configuration 包设置INFO,单独把Foo设置为DEBUG,如下所示:
|
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned by default the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="chapters.configuration" level="INFO" />
<logger name="chapters.configuration.Foo" level="DEBUG" />
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
|
用该文件作为参数运行MyApp3,输出如下:
|
21:16:56.913 [main] INFO chapters.configuration.MyApp3 - Entering application.
21:16:56.915 [main] DEBUG chapters.configuration.Foo - Did it again!
21:16:56.916 [main] INFO chapters.configuration.MyApp3 - Exiting application.
|
下面列出上面各个logger对应的level:
|
Logger 名
|
指定的 Level
|
实际的 Level
|
|
root
|
DEBUG
|
DEBUG
|
|
chapters.configuration
|
INFO
|
INFO
|
|
chapters.configuration.MyApp3
|
null
|
INFO
|
|
chapters.configuration.Foo
|
DEBUG
|
DEBUG
|
由此可见,MyApp3的INFO和Foo.doIt()的DEBUG都启用了。而root logger总是为非NULL的,其默认值为DEBUG。
<appender>

<appender>用于配置日志输出位置。属性:
|
属性名
|
类型
|
Use
|
描述
|
|
name
|
string
|
required
|
appender名,可随意取
|
|
class
|
string
|
required
|
appender对应的类,需包含完整路径,如输出到console对应的:class="ch.qos.logback.core.ConsoleAppender"
|
子元素:
|
元素名
|
minOccurs
|
maxOccurs
|
|
layout
|
0
|
1
|
|
encoder
|
0
|
unbounded
|
|
filter
|
0
|
unbounded
|
layout
layout元素必须包含class元素,包含layout类的完全限定名。
|
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>myApp.log</file>
<!-- encoders are assigned by default the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
|
2.6 定义变量
可以在配置文件中定义变量,也可以从外部导入。在logback的XML配置文件中可以用<property>和<variable>(1.07之后)定义变量。下面定义一个变量,用于定义输出文件位置:
|
<configuration>
<property name="USER_HOME" value="/home/sebastien" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/myApp.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>
|
也可以用系统变量达到相同的目的:
|
java -DUSER_HOME="/home/sebastien" MyApp2
|
然后在配置文件中引用该变量:
|
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/myApp.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>
|
如果需要很多变量,则以一个单独的文件存放所有变量比较合适:
下面的配置文件引用了一个变量:
|
<configuration>
<property file="src/main/java/chapters/configuration/variables1.properties" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/myApp.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>
|
该文件包含variables1.properties属性文件的引用。属性文件中定义的变量会被作为本地变量引入,variable.properties文件格式如下:
|
USER_HOME=/home/sebastien
|
也可以直接引用类路径下的文件:
|
<configuration>
<property resource="resource1.properties" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/myApp.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>
|
作用域
还可以对上面定义的变量进行作用域限制,local, context或system,分别对应配置范围,logback程序范围及JVM范围,定义方式如下:
|
<configuration>
<property scope="context" name="nodeId" value="firstNode" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/opt/${noteId}/myApp.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>
|
scope可用值有:local, context 和 system。
默认值
假设变量名为aName,指定其默认值为golder,指定语法为:"${aName:-golden}"。
嵌套变量
嵌套指一个变量可以引用另一个变量。包括值嵌套、名嵌套以及默认值嵌套。
值嵌套
|
USER_HOME=/home/sebastien
fileName=myApp.log
destination=${USER_HOME}/${fileName}
|
destination变量值包含对USER_HOME变量值和fileName变量值的引用。
名嵌套
当引用一个变量时,变量名可能包含对其他变量的引用。例如,如果变量"userid"的值为"alice",则"${${userid}.password}"表示名为"alice.password"的变量。
默认值嵌套
如变量"id"未分配值,变量"userid"值为"alice",则"${id:-${userid}}"
- 剖析项目多个logback配置(下)
来源:http://www.cnblogs.com/guozp/p/5973038.html 上篇大概描述了logback的加载顺序以及加载的源码,本篇将分析如果在你的Maven或者其他多模块的项目中 ...
- Spring Boot系列一:默认日志logback配置解析
前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用? 正文 Sp ...
- (网页)Java日志记录框架Logback配置详解(企业级应用解决方案)(转)
转自CSDN: 前言 Logback是现在比较流行的一个日志记录框架,它的配置比较简单学习成本相对较低,所以刚刚接触该框架的朋友不要畏惧,多花点耐心很快就能灵活应用了.本篇博文不会具体介绍Logbac ...
- Java中多环境Logback配置与ELK日志发送
Java中多环境Logback配置与ELK日志发送 一.项目基于SpringBoot实现,引入SpringBoot相关库后,本文还要讲上传到ELK的Logstash,所以需要在pom.xml中加入 ...
- logback配置详解
本文转自:https://segmentfault.com/a/1190000008315137 概览 简单地说,Logback 是一个 Java 领域的日志框架.它被认为是 Log4J 的继承人.L ...
- SpringBoot Logback配置,SpringBoot日志配置
SpringBoot Logback配置,SpringBoot日志配置 SpringBoot springProfile属性配置 ================================ © ...
- spring整合mybatis、hibernate、logback配置
Spring整合配置Mybatis 1.配置数据源(连接数据库最基本的属性配置,如数据库url,账号,密码,和数据库驱动等最基本参数配置) <!-- 导入properties配置文件 --> ...
- logback -- 配置详解 -- 四 -- <filter>
附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...
- logback -- 配置详解 -- 三 -- <encoder>
附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...
随机推荐
- tomcat 7.0 之文件配置
- 《Web全栈工程师的自我修养》读书笔记(转载)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/5 ...
- ie浏览器 jsp中链接参数为中文的处理
在js中,使用 encodeURIComponent(encodeURIComponent("警情抽查"))来处理参数,例如: mini.get("khxmdm" ...
- nginx配置文件语法高亮显示方法
1.去官方站点下载nginx.vim http://www.vim.org/scripts/script.php?script_id=1886 2.创建nginx.vim的存放目录 # mkdir - ...
- postgresql修改最大连接数
1.合适的最大连接数 used_connections/max_connections在85%左右2.修改最大连接数postgresql最大连接数默认为1001)打开postgresql配置文件vim ...
- 使用IntelliJ IDEA 配置Maven(入门)(转)
原文转自:http://blog.csdn.net/qq_32588349/article/details/51461182 1. 下载Maven 官方地址:http://maven.apache.o ...
- WPF中的image控件的Source赋值
WPF中的Image控件Source的设置 1.XAML中 简单的方式(Source="haha.png"); image控件的Source设置为相对路径后(Source=&quo ...
- ie浏览器,背景色兼容解决方法
rgba的含义,r代表red,g代表green,b代表blue,a代表透明度.红绿蓝是三原色,所有颜色都可以由这三种颜色拼合而成.比如 rgba(0,0,0,.5)就是透明度为0.5的黑色.现代浏览器 ...
- python(28)获得网卡的IP地址
获得第几块网卡的ip地址: def get_ip_address(self,ifname): # ifname = 'eth0' s = socket.socket(socket.AF_INET, s ...
- 查看sql语句执行的消耗
set statistics profile on set statistics io on set statistics time on go <这里写上你的语句...> go set ...
|