|
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 ...
随机推荐
- 评价qq拼音输入法
我目前正在使用qq拼音输入法,从人机交互设计方面,我对qq输入法从用户界面.记住用户选择.短期刺激和长期使用的好处坏处.不让用户犯简单错误这四个方面进行了评价. 1.从用户界面方面: qq输入法用户界 ...
- VS 2005 修复重置(深度重置)
/resetuserdata 参数 如果 Visual Studio 在运行时被损坏,且无法从损坏状态进行恢复,您可以使用此参数将 Visual Studio 重置到其使用之初的状态.这些问题的例子可 ...
- spring data mongodb 配置遇到的几个问题
一. mongodb 2.2版本以上的配置 spring.data.mongodb.uri = mongodb://newlook:newlook@192.168.0.109:27017/admin ...
- radio值未出现JQ获取值问题
$('input:radio[name="modelExtend.manageType"]:checked').val(); 选中的获取的值不是空或者null而是on
- 《Matrix Computation 3rd》读书笔记——第2章 矩阵分析
- linux 目录定义
/ 根目录,存放系统命令和用户数据等(如果下面挂载点没有单独的分区,它们都将在根目录的分区中) /boot boot loader 的静态链接文件,存放与Linux启动相关的程序/ho ...
- 启用https协议的方法
提醒:启用https协议会降低服务器性能,如非必要不必启用 一.用openssl生成密钥.证书: 1.生成RSA密钥的方法 openssl genrsa -out privkey.pem 2048 建 ...
- Redis的三种启动方式【转】
Part I. 直接启动 下载 官网下载 安装 tar zxvf redis-2.8.9.tar.gz cd redis-2.8.9 #直接make 编译 make #可使用root用户执行`make ...
- 详细解说Java Spring的JavaConfig注解 【抄】
抄自: http://www.techweb.com.cn/network/system/2016-01-05/2252188.shtml @RestController spring4为了更方便的支 ...
- 如何给Visual Studio 2015安装XNA4.0
从这个地址下载安装包 https://mxa.codeplex.com/releases/view/618279 按照说明步骤依次安装 DirectX XNA Framework 4.0 Redist ...
|