데이터 베이스 MySQL 튜토리얼 logback配置详解2<appender>

logback配置详解2<appender>

Jun 07, 2016 pm 03:38 PM
amp log logback 상해 구성

logback 常用配置详解(二) appender appender: appender是configuration的子节点,是负责写日志的组件。 appender有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。 1.ConsoleAppender: 把日志添加到控制台,有以下子节点

logback 常用配置详解(二) 

 

logback配置详解2<appender>

的子节点,是负责写日志的组件。

有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。

 

1.ConsoleAppender:

把日志添加到控制台,有以下子节点:

:对日志进行格式化。(具体参数稍后讲解 )

:字符串 System.out 或者 System.err ,默认 System.out ;

例如:

Xml代码  

  1. configuration>  
  2.   
  3.   appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
  4.     encoder>  
  5.       pattern>%-4relative [%thread] %-5level %logger{35} - %msg %npattern>  
  6.     encoder>  
  7.   appender>  
  8.   
  9.   root level="DEBUG">  
  10.     appender-ref ref="STDOUT" />  
  11.   root>  
  12. configuration>  

 

2.FileAppender:

把日志添加到文件,有以下子节点:

:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。

:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。

:对记录事件进行格式化。(具体参数稍后讲解 )

:如果是 true,日志会被安全的写入文件,即使其他的FileAppender也在向此文件做写入操作,效率低,默认是 false。

例如:

Xml代码  

  1. configuration>  
  2.   
  3.   appender name="FILE" class="ch.qos.logback.core.FileAppender">  
  4.     file>testFile.logfile>  
  5.     append>trueappend>  
  6.     encoder>  
  7.       pattern>%-4relative [%thread] %-5level %logger{35} - %msg%npattern>  
  8.     encoder>  
  9.   appender>  
  10.           
  11.   root level="DEBUG">  
  12.     appender-ref ref="FILE" />  
  13.   root>  
  14. configuration>  


3.RollingFileAppender:

滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。有以下子节点:

:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。

:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。

:对记录事件进行格式化。(具体参数稍后讲解 )

:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。

triggeringPolicy >: 告知 RollingFileAppender 合适激活滚动。

:当为true时,不支持FixedWindowRollingPolicy。支持TimeBasedRollingPolicy,但是有两个限制,1不支持也不允许文件压缩,2不能设置file属性,必须留空。

 

rollingPolicy:

 

TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。有以下子节点:

fileNamePattern>:

必要节点,包含文件名及“%d”转换符, “%d”可以包含一个java.text.SimpleDateFormat指定的时间格式,如:%d{yyyy-MM}。如果直接使用 %d,默认格式是 yyyy-MM-dd。RollingFileAppender 的file字节点可有可无,通过设置file,可以为活动文件和归档文件指定不同位置,当前日志总是记录到file指定的文件(活动文件),活动文件的名字不会改变;如果没设置file,活动文件的名字会根据fileNamePattern 的值,每隔一段时间改变一次。“/”或者“\”会被当做目录分隔符。

 

maxHistory>:

可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个月滚动,且maxHistory>是6,则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除。

 

 

FixedWindowRollingPolicy: 根据固定窗口算法重命名文件的滚动策略。有以下子节点:

minIndex>:窗口索引最小值

maxIndex>:窗口索引最大值,当用户指定的窗口过大时,会自动将窗口设置为12。

fileNamePattern >:

必须包含“%i”例如,假设最小值和最大值分别为1和2,命名模式为 mylog%i.log,会产生归档文件mylog1.log和mylog2.log。还可以指定文件压缩选项,例如,mylog%i.log.gz 或者 没有log%i.log.zip

 

triggeringPolicy:

 

SizeBasedTriggeringPolicy: 查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender 触发当前活动文件滚动。只有一个节点:

:这是活动文件的大小,默认值是10MB。

 

 

 

例如:每天生成一个日志文件,保存30天的日志文件。

 

Java代码  

  1.    
  2.   "FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">   
  3.       
  4.     class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">   
  5.       logFile.%d{yyyy-MM-dd}.log   
  6.       30    
  7.        
  8.    
  9.        
  10.       %-4relative [%thread] %-5level %logger{35} - %msg%n   
  11.        
  12.       
  13.    
  14.   "DEBUG">   
  15.     "FILE" />   
  16.      
  17.   

 

  例如:按照固定窗口模式生成日志文件,当文件大于20MB时,生成新的日志文件。窗口大小是1到3,当保存了3个归档文件后,将覆盖最早的日志。

Xml代码  

  1. configuration>   
  2.   appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">   
  3.     file>test.logfile>   
  4.    
  5.     rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">   
  6.       fileNamePattern>tests.%i.log.zipfileNamePattern>   
  7.       minIndex>1minIndex>   
  8.       maxIndex>3maxIndex>   
  9.     rollingPolicy>   
  10.    
  11.     triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">   
  12.       maxFileSize>5MBmaxFileSize>   
  13.     triggeringPolicy>   
  14.     encoder>   
  15.       pattern>%-4relative [%thread] %-5level %logger{35} - %msg%npattern>   
  16.     encoder>   
  17.   appender>   
  18.            
  19.   root level="DEBUG">   
  20.     appender-ref ref="FILE" />   
  21.   root>   
  22. configuration>  

 

4.另外还有SocketAppender、SMTPAppender、DBAppender、SyslogAppender、SiftingAppender,并不常用,这些就不在这里讲解了,大家可以参考官方文档。当然大家可以编写自己的Appender。

 

 

负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。

目前PatternLayoutEncoder 是唯一有用的且默认的encoder ,有一个节点,用来设置日志的输入格式。使用“%”加“转换符”方式,如果要输出“%”,则必须用“\”对“\%”进行转义。

例如:

Xml代码  

  1. encoder>   
  2.    pattern>%-4relative [%thread] %-5level %logger{35} - %msg%npattern>   
  3. encoder  

 

里面的转换符说明:

 

转换符 作用
c {length } 
lo {length } 
logger {length } 
输出日志的logger名,可有一个整形参数,功能是缩短logger名,设置为0表示只输入logger最右边点符号之后的字符串。
Conversion specifier Logger name Result
%logger mainPackage.sub.sample.Bar mainPackage.sub.sample.Bar
%logger{0} mainPackage.sub.sample.Bar Bar
%logger{5} mainPackage.sub.sample.Bar m.s.s.Bar
%logger{10} mainPackage.sub.sample.Bar m.s.s.Bar
%logger{15} mainPackage.sub.sample.Bar m.s.sample.Bar
%logger{16} mainPackage.sub.sample.Bar m.sub.sample.Bar
%logger{26} mainPackage.sub.sample.Bar mainPackage.sub.sample.Bar

 

C {length } 
class {length } 
输出执行记录请求的调用者的全限定名。参数与上面的一样。尽量避免使用,除非执行速度不造成任何问题。
contextName 
cn
 
输出上下文名称。
d {pattern } 
date {pattern } 
输出日志的打印日志,模式语法与java.text.SimpleDateFormat 兼容。
Conversion Pattern Result
%d 2006-10-20 14:06:49,812
%date 2006-10-20 14:06:49,812
%date{ISO8601} 2006-10-20 14:06:49,812
%date{HH:mm:ss.SSS} 14:06:49.812
%date{dd MMM yyyy ;HH:mm:ss.SSS} 20 oct. 2006;14:06:49.812
F / file 输出执行记录请求的java源文件名。尽量避免使用,除非执行速度不造成任何问题。
caller{depth}caller{depth, evaluator-1, ... evaluator-n} 输出生成日志的调用者的位置信息,整数选项表示输出信息深度。

例如, %caller{2}   输出为:

0    [main] DEBUG - logging statement 
Caller+0   at mainPackage.sub.sample.Bar.sampleMethodName(Bar.java:22)
Caller+1   at mainPackage.sub.sample.Bar.createLoggingRequest(Bar.java:17)
로그인 후 복사

例如, %caller{3}   输出为:

16   [main] DEBUG - logging statement 
Caller+0   at mainPackage.sub.sample.Bar.sampleMethodName(Bar.java:22)
Caller+1   at mainPackage.sub.sample.Bar.createLoggingRequest(Bar.java:17)
Caller+2   at mainPackage.ConfigTester.main(ConfigTester.java:38)
로그인 후 복사
L / line 输出执行日志请求的行号。尽量避免使用,除非执行速度不造成任何问题。
m / msg / message

输出应用程序提供的信息。

M / method 输出执行日志请求的方法名。尽量避免使用,除非执行速度不造成任何问题。
n 输出平台先关的分行符“\n”或者“\r\n”。
p / le / level 输出日志级别。
r / relative 输出从程序启动到创建日志记录的时间,单位是毫秒
t / thread 输出产生日志的线程名。
replace(p ){r, t}

p 为日志内容,r 是正则表达式,将p 中符合r 的内容替换为t 。

例如, "%replace(%msg){'\s', ''}"

 

 

格式修饰符,与转换符共同使用:

可选的格式修饰符位于“%”和转换符之间。

第一个可选修饰符是左对齐 标志,符号是减号“-”;接着是可选的最小宽度 修饰符,用十进制数表示。如果字符小于最小宽度,则左填充或右填充,默认是左填充(即右对齐),填充符为空格。如果字符大于最小宽度,字符永远不会被截断。最大宽度 修饰符,符号是点号"."后面加十进制数。如果字符大于最大宽度,则从前面截断。点符号“.”后面加减号“-”在加数字,表示从尾部截断。

 

 

例如:%-4relative 表示,将输出从程序启动到创建日志记录的时间 进行左对齐 且最小宽度为4。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 시스템에서 GDM의 작동 원리 및 구성 방법 Linux 시스템에서 GDM의 작동 원리 및 구성 방법 Mar 01, 2024 pm 06:36 PM

제목: Linux 시스템에서 GDM의 작동 원리 및 구성 방법 Linux 운영 체제에서 GDM(GNOMEDisplayManager)은 그래픽 사용자 인터페이스(GUI) 로그인 및 사용자 세션 관리를 제어하는 ​​데 사용되는 일반적인 디스플레이 관리자입니다. 이 기사에서는 GDM의 작동 원리와 구성 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. GDM의 작동 원리 GDM은 GNOME 데스크탑 환경의 디스플레이 관리자이며 X 서버를 시작하고 사용자에게 로그인 인터페이스를 제공합니다.

Linux Bashrc 이해: 기능, 구성 및 사용법 Linux Bashrc 이해: 기능, 구성 및 사용법 Mar 20, 2024 pm 03:30 PM

Linux Bashrc 이해: 기능, 구성 및 사용법 Linux 시스템에서 Bashrc(BourneAgainShellruncommands)는 시스템 시작 시 자동으로 실행되는 다양한 명령과 설정이 포함된 매우 중요한 구성 파일입니다. Bashrc 파일은 일반적으로 사용자의 홈 디렉토리에 있으며 숨겨진 파일입니다. 해당 기능은 사용자를 위해 Bashshell 환경을 사용자 정의하는 것입니다. 1. Bashrc 기능 설정 환경

Win11에서 관리자 권한을 얻는 방법에 대한 자세한 설명 Win11에서 관리자 권한을 얻는 방법에 대한 자세한 설명 Mar 08, 2024 pm 03:06 PM

Windows 운영 체제는 세계에서 가장 인기 있는 운영 체제 중 하나이며, 새로운 버전의 Win11이 많은 주목을 받았습니다. Win11 시스템에서 관리자 권한을 얻는 것은 사용자가 시스템에서 더 많은 작업과 설정을 수행할 수 있도록 하는 중요한 작업입니다. 이번 글에서는 Win11 시스템에서 관리자 권한을 얻는 방법과 권한을 효과적으로 관리하는 방법을 자세히 소개하겠습니다. Win11 시스템에서 관리자 권한은 로컬 관리자와 도메인 관리자의 두 가지 유형으로 나뉩니다. 로컬 관리자는 로컬 컴퓨터에 대한 모든 관리 권한을 갖습니다.

Oracle SQL의 나누기 연산에 대한 자세한 설명 Oracle SQL의 나누기 연산에 대한 자세한 설명 Mar 10, 2024 am 09:51 AM

OracleSQL의 나눗셈 연산에 대한 자세한 설명 OracleSQL에서 나눗셈 연산은 두 숫자를 나눈 결과를 계산하는 데 사용되는 일반적이고 중요한 수학 연산입니다. 나누기는 데이터베이스 쿼리에 자주 사용되므로 OracleSQL에서 나누기 작업과 사용법을 이해하는 것은 데이터베이스 개발자에게 필수적인 기술 중 하나입니다. 이 기사에서는 OracleSQL의 나누기 작업 관련 지식을 자세히 설명하고 독자가 참고할 수 있는 특정 코드 예제를 제공합니다. 1. OracleSQL의 Division 연산

Linux 시스템에서 FTPS를 구성하고 설치하는 방법 Linux 시스템에서 FTPS를 구성하고 설치하는 방법 Mar 20, 2024 pm 02:03 PM

제목: Linux 시스템에서 FTPS를 구성하고 설치하는 방법에는 특정 코드 예제가 필요합니다. Linux 시스템에서 FTPS는 FTP와 비교하여 전송된 데이터를 TLS/SSL 프로토콜을 통해 암호화하므로 성능이 향상됩니다. 데이터 전송의 보안. 이 기사에서는 Linux 시스템에서 FTPS를 구성 및 설치하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1단계: vsftpd 설치 터미널을 열고 다음 명령을 입력하여 vsftpd를 설치합니다. sudo

MyBatis Generator 구성 매개변수 해석 및 모범 사례 MyBatis Generator 구성 매개변수 해석 및 모범 사례 Feb 23, 2024 am 09:51 AM

MyBatisGenerator는 MyBatis에서 공식적으로 제공하는 코드 생성 도구로, 개발자가 데이터베이스 테이블 구조에 맞는 JavaBeans, Mapper 인터페이스 및 XML 매핑 파일을 빠르게 생성할 수 있도록 도와줍니다. 코드 생성을 위해 MyBatisGenerator를 사용하는 과정에서 구성 매개변수 설정이 중요합니다. 이 글은 구성 매개변수의 관점에서 시작하여 MyBatisGenerator의 기능을 깊이 탐구할 것입니다.

내 win11 컴퓨터의 구성을 어디서 확인할 수 있나요? win11 컴퓨터의 구성 정보를 찾는 방법 내 win11 컴퓨터의 구성을 어디서 확인할 수 있나요? win11 컴퓨터의 구성 정보를 찾는 방법 Mar 06, 2024 am 10:10 AM

win11 시스템을 사용하다 보면 가끔 컴퓨터 구성을 확인해야 할 때가 있는데, 많은 사용자들이 win11 컴퓨터 구성을 어디서 확인해야 하는지 묻고 있습니다. 실제로 방법은 매우 간단합니다. 사용자는 설정에서 시스템 정보를 직접 열고 컴퓨터 구성 정보를 볼 수 있습니다. 이 사이트에서는 win11 컴퓨터 구성 정보를 찾는 방법을 사용자에게 주의 깊게 소개합니다. win11 컴퓨터 구성 정보를 찾는 방법 방법 1: 1. 시작을 클릭하고 컴퓨터 설정을 엽니다. 3. 이 페이지에서 컴퓨터 구성 정보를 볼 수 있습니다. 2. 명령 프롬프트 창에서 systeminfo를 입력하고 Enter를 눌러 컴퓨터 구성을 확인합니다.

PHP 모듈로 연산자의 역할과 사용법에 대한 자세한 설명 PHP 모듈로 연산자의 역할과 사용법에 대한 자세한 설명 Mar 19, 2024 pm 04:33 PM

PHP의 모듈로 연산자(%)는 두 숫자를 나눈 나머지를 구하는 데 사용됩니다. 이 글에서는 모듈로 연산자의 역할과 사용법을 자세히 논의하고 독자의 이해를 돕기 위해 구체적인 코드 예제를 제공합니다. 1. 모듈로 연산자의 역할 수학에서는 정수를 다른 정수로 나누면 몫과 나머지가 나옵니다. 예를 들어 10을 3으로 나누면 몫은 3이고 나머지는 1입니다. 이 나머지를 얻기 위해 모듈로 연산자가 사용됩니다. 2. 모듈러스 연산자의 사용법 PHP에서는 모듈러스를 나타내기 위해 % 기호를 사용합니다.

See all articles