log4j2 使用详解

log4j升级了,新架构很不错,将安装步骤记录如下:

1、Log4j2的导入

首先到http://logging.apache.org/log4j/2.x/download.html 上下载最新的log4j2的jar包,然后再eclipse中加入log4j-api-2.0-beta2.jar和log4j-core-2.0-beta2.jar,需要注意的是不要将所有jar都导入工程造成不必要的混乱。

2、测试用例

log4j 2.0的使用非常简单,只要用LogManager的getLogger函数获取一个logger,就可以使用logger记录日志,代码如下:

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

public class HelloLog4j {

private static Logger logger = LogManager.getLogger("HelloLog4j");

public static void main(String[] args) {

 MyApplication myApplication = new MyApplication();

 logger.entry();

 logger.info("Hello, World!");

 myApplication.doIt();

    logger.error("Hello, World!");

    logger.exit();

}

}

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

public class MyApplication {

  static Logger logger = LogManager.getLogger(MyApplication.class.getName()); 

  

  public boolean doIt() { 

   logger.entry();  //Log entry to a method 

   logger.error("Did it again!");  //Log a message object with the ERROR level 

   logger.exit();  //Log exit from a method 

   return false; 

  } 

}

运行程序,输出结果为:

12:11:28.672 [main] ERROR MyApplication - Did it again!

12:11:28.672 [main] ERROR HelloLog4j - Hello, World!

注意到,输出的log都是在ERROR level上的,log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。如果将log level设置在某一个级别上,那么比此级别优先级高的log都能打印出来。例如,如果设置优先级为WARN,那么OFF、FATAL、ERROR、WARN 4个级别的log能正常输出,而INFO、DEBUG、TRACE、 ALL级别的log则会被忽略。从我们实验的结果可以看出,log4j默认的优先级为ERROR或者WARN(实际上是ERROR)。

3. 配置文件

log4j是apache的一个开源项目,在写这篇博客的时候已经发布了2.0的beta版本,首先需要注意的是,log4j 2.0与以往的1.x有一个明显的不同,其配置文件只能采用.xml, .json或者 .jsn。在默认情况下,系统选择configuration文件的优先级如下:(classpath为scr文件夹)classpath下名为 log4j-test.json 或者log4j-test.jsn文件classpath下名为 log4j2-test.xmlclasspath下名为 log4j.json 或者log4j.jsn文件classpath下名为 log4j2.xml必须注意.xml 文件的文件名为log4j2,这里让我纠结了一个下午,系统一直找不到配置文件,最后发现是文件名里面少了一个2。下面以log4j2.xml为例来介绍log4j的配置。

<?xml version="1.0" encoding="UTF-8"?>

<configuration status="OFF">

 <appenders>

  <Console name="Console" target="SYSTEM_OUT">

   <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

  </Console>

 </appenders>

 <loggers>

  <root level="trace">

   <appender-ref ref="Console"/>

  </root>

 </loggers>

</configuration>

首先介绍loggers标签,用于定义logger的lever和所采用的appender,其中appender-ref必须为先前定义的appenders的名称,例如,此处为Console。那么log就会以appender所定义的输出格式来输出log。root标签为log的默认输出形式,如果一个类的log没有在loggers中明确指定其输出lever与格式,那么就会采用root中定义的格式。例如以下定义:

<?xml version="1.0" encoding="UTF-8"?>

<configuration status="OFF">

 <appenders>

  <Console name="Console" target="SYSTEM_OUT">

   <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

  </Console>

 </appenders>

 <loggers>

  <logger name="com.relin.HelloLog4j" level="error" additivity="false">

   <appender-ref ref="Console"/>

  </logger>

  <root level="trace">

   <appender-ref ref="Console"/>

  </root>

 </loggers>

</configuration>

此时,HelloLog4j则会在error级别上输出log,而其他类则会在trace级别上输出log。需要注意的是 additivity选项,如果设置为true(默认值)则HelloLog4j的log会被打印两次,第二次打印是由于HelloLog4j同时也满足root里面定义的trace

4. 其他特征

<?xml version="1.0" encoding="UTF-8"?> 

<configuration status="error"> 

 <appenders> 

<!--控制台输出-->

  <Console name="Console" target="SYSTEM_OUT"> 

   <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/> 

   <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> 

  </Console> 

<!--文件输出-->

  <File name="log" fileName="target/test.log" append="false"> 

   <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> 

  </File> 

<!--归档文件输出-->

  <RollingFile name="RollingFile" fileName="logs/app.log" 

         filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> 

   <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> 

   <SizeBasedTriggeringPolicy size="500 MB" /> 

  </RollingFile> 

 </appenders> 

 <loggers> 

  <root level="trace"> 

   <appender-ref ref="RollingFile"/> 

   <appender-ref ref="Console"/> 

  </root> 

 </loggers> 

</configuration>

注意:输出的日志文件默认存放在tomcat/bin目录下

扩展组件

1,ConsoleAppender

输出结果到System.out或是System.err。

2,FileAppender

输出结果到指定文件,同时可以指定输出数据的格式。append=“false”指定不追加到文件末尾

3,RollingFileAppender

自动追加日志信息到文件中,直至文件达到预定的大小,然后自动重新生成另外一个文件来记录之后的日志。

过滤标签

1,ThresholdFilter

用来过滤指定优先级的事件。

2,TimeFilter

设置start和end,来指定接收日志信息的时间区间。

最新评论:

no.115572 nffxy 47.74.186.195 2020-02-24 16:51

第一借錢網擁有全台最多的借錢資訊 https://168cash.com.tw/

no.115569 hfintwr 113.160.219.210 2020-02-24 12:58

[url=https://4serial.com/] Война токов 2020 смотреть онлайн полностью. [/url]

no.115565 vipmio 95.73.233.147 2020-02-24 11:12

[больничный лист купить официально][больничный лист купить задним числом][оформить медицинские документы в день обращения]

no.115564 iwsqvdl 36.67.51.186 2020-02-24 10:11

[url=https://imdb1.ru/] Эспен в поисках Золотого замка 2020 смотреть онлайн бесплатно 1080. [/url]

no.115553 hcoxkfk 43.245.202.110 2020-02-24 03:33

[url=https://zfilm2.ru/] Ржев 2019 2020 смотреть онлайн 720. [/url]

no.115543 bjonscd 103.31.157.206 2020-02-23 20:09

[url=https://m-dnc.com/] Камуфляж и шпионаж 2020 смотреть онлайн +в hd 1080. [/url]

no.115542 nchcdkk 78.139.200.51 2020-02-23 19:02

[url=https://zfilm2.ru/] Курск 2020 смотреть онлайн hd 720. [/url]

no.115524 uysvfzb 82.151.220.89 2020-02-23 09:40

[url=https://www.kino-m.com/] Я худею 2020 смотреть онлайн русский. [/url]

no.115517 zukeajn 93.88.107.125 2020-02-23 07:04

[url=https://www.kino-m.com/] Король Лев 2020 смотреть онлайн на русском. [/url]

no.115516 xszzjpv 203.99.110.214 2020-02-23 06:12

[url=https://kino-m.com/] Кошки 2020 2020 смотреть онлайн русский. [/url]

no.115502 ydpfwvi 177.68.143.100 2020-02-22 20:14

[url=https://00-tv.com/] Полицейский с Рублёвки. Новогодний беспредел 2020 смотреть онлайн 1080. [/url]

no.115496 msmgcom 193.169.61.162 2020-02-22 15:00

[url=https://www.wwin-tv.com/] Кошки 2020 2020 смотреть онлайн на русском. [/url]

no.115485 fyxyscz 170.79.9.54 2020-02-22 08:21

[url=https://www.tvonlayn.ru/] Джокер 2019 2020 смотреть онлайн 720. [/url]

no.115484 mvhgeng 210.210.154.3 2020-02-22 07:26

[url=https://www.wwin-tv.com/] Кошки 2020 2020 смотреть онлайн +в hd 1080. [/url]

no.115481 syfktbk 213.33.157.204 2020-02-22 05:49

[url=https://www.4serial.com/] Бык 2019 фильм 2020 смотреть онлайн hd 1080. [/url]

no.115478 jazqazh 36.67.51.186 2020-02-22 02:27

[url=https://kino-m.com/] Одесса 2019 2020 смотреть онлайн полностью. [/url]

no.115468 luxxbbl 176.117.255.182 2020-02-21 13:45

[url=https://www.4serial.com/] Руководство по сексу на втором свидании 2020 смотреть онлайн полностью. [/url]

no.115465 idchinh 213.109.235.231 2020-02-21 11:06

[url=https://zfilm2.ru/] Девятая 2020 смотреть онлайн русский. [/url]

no.115460 mmqfgie 190.109.168.99 2020-02-21 08:33

[url=https://00-tv.com/] Форсаж 8 2020 смотреть онлайн бесплатно 1080. [/url]

no.115447 zwuvkeq 31.209.97.66 2020-02-21 01:06

[url=https://4serial.com/] Лев Яшин. Вратарь моей мечты 2020 смотреть онлайн 1080. [/url]

no.115444 qqaas 47.244.9.129 2020-02-20 19:48

娛樂城介紹 https://forum.tw-sportslottery.com/thread-119-1-1.html

no.115439 adkqiom 163.53.151.25 2020-02-20 18:29

[url=https://4serial.com/] Союз спасения 2019 фильм 2020 смотреть онлайн hd 1080. [/url]

no.115430 krbheix 91.213.119.246 2020-02-20 09:47

[url=https://00-tv.com/] Бык 2019 фильм 2020 смотреть онлайн 1080. [/url]

no.115425 iodxiqw 111.118.138.133 2020-02-20 07:57

[url=https://m-dnc.com/] Чёрный ворон (Чорний ворон) 2020 смотреть онлайн русский. [/url]

no.115418 msiwlgx 1.53.137.220 2020-02-20 04:43

[url=https://kino-m.com/] Мысленный волк 2020 смотреть онлайн 720. [/url]

no.115413 hkfavcv 183.96.89.113 2020-02-20 02:15

[url=https://www.tvonlayn.ru/] Годзилла 2: Король монстров 2020 смотреть онлайн на русском языке. [/url]

no.115404 paccyet 190.64.147.19 2020-02-19 19:42

[url=https://00-tv.com/] Хороший лжец 2020 смотреть онлайн полностью. [/url]

no.115400 spbspis 200.122.90.11 2020-02-19 17:15

[url=https://4serial.com/] Вий 2. Тайна Печати дракона 2020 смотреть онлайн полностью. [/url]

no.115388 herbgm05hi0 178.175.130.245 2020-02-19 10:10

[url=https://crypto-bear.com/]биткоин кошелек electrum[/url] - скачать msi afterburner windows 10, overdriventool 0.2 7

no.115383 easymwx 190.63.144.26 2020-02-19 08:22

[url=https://kino-m.com/] Zомбилэнд: Контрольный выстрел 2020 смотреть онлайн hd 720. [/url]

no.115379 vipmio 95.73.233.147 2020-02-19 05:57

[больничный лист купить][больничный лист официально][больничный лист купить задним числом] [url=купить больничный лист задним числом/Подробности по ссылке…]https://dr-ryadom24.top/centralnyy-administrativnyy-okrug-arbat.html[/url]

no.115367 ybfslge 46.188.82.11 2020-02-18 20:43

[url=https://00-tv.com/] Малыш Джо 2020 смотреть онлайн качество 1080. [/url]

no.115363 ckxmdpl 170.81.35.26 2020-02-18 17:59

[url=https://www.kino-m.com/] Чёрный ворон (Чорний ворон) 2020 смотреть онлайн бесплатно 1080. [/url]

no.115360 wvzsdbh 77.244.26.125 2020-02-18 15:31

[url=https://www.wwin-tv.com/] Вий 2. Тайна Печати дракона 2020 смотреть онлайн полностью. [/url]

no.115350 iiiszya 94.124.193.242 2020-02-18 09:31

[url=https://m-dnc.com/] Завод 2020 смотреть онлайн полностью. [/url]

no.115349 yxrwwnu 46.162.193.21 2020-02-18 07:38

[url=https://00-tv.com/] Лев Яшин. Вратарь моей мечты фильм 2020 смотреть онлайн 1080. [/url]

no.115348 rnpnrdf 200.6.169.250 2020-02-18 06:55

[url=https://www.kino-m.com/] Вторжение 2020 2020 смотреть онлайн полностью. [/url]

no.115342 jtarkyz 91.233.158.16 2020-02-18 04:25

[url=https://00-tv.com/] Во всё тяжкое 2020 смотреть онлайн бесплатно 1080. [/url]

no.115336 qwdgucy 176.36.89.203 2020-02-17 19:13

[url=https://www.4serial.com/] Лёд 2 2020 смотреть онлайн hd 720. [/url]

no.115334 cahqppq 195.211.219.47 2020-02-17 18:21

[url=https://4serial.com/] Добро пожаловать в Акапулько 2020 смотреть онлайн hd 720. [/url]

no.115332 hrsvupj 188.165.138.11 2020-02-17 15:42

[url=https://www.wwin-tv.com/] Люби их всех 2020 смотреть онлайн 1080. [/url]

no.115328 ivuygrz 95.31.119.210 2020-02-17 13:54

[url=https://www.tvonlayn.ru/] Годзилла 2: Король монстров 2020 смотреть онлайн на русском. [/url]

no.115307 zjtaitm 203.142.66.26 2020-02-17 03:10

[url=https://m-dnc.com/] Захар Беркут 2020 смотреть онлайн русский. [/url]

no.115303 jmcobaz 78.29.32.122 2020-02-16 22:57

[url=https://www.4serial.com/] Ржев 2019 2020 смотреть онлайн 1080. [/url]

no.115295 iyvurwc 91.205.131.55 2020-02-16 16:57

[url=https://kino-m.com/] Леонардо: Миссия Мона Лиза фильм 2020 смотреть онлайн 720. [/url]

no.115293 cjgvpnr 190.196.20.166 2020-02-16 15:04

[url=https://4serial.com/] Завод фильм 2020 смотреть онлайн 1080. [/url]

no.115292 vqlgpew 203.142.66.26 2020-02-16 14:21

[url=https://www.wwin-tv.com/] Комната желаний 2020 смотреть онлайн на русском. [/url]

no.115288 qndpkxt 210.245.51.43 2020-02-16 12:32

[url=https://www.wwin-tv.com/] Ёлки Последние 2020 смотреть онлайн качество 1080. [/url]

no.115285 vipmio 95.73.233.147 2020-02-16 11:06

[Больничный лист официально][Медицинскую справку оформить за час][купить рецепт от врача] [url=https://dr-pills24.top/bolnichniy_list.html]купить больничный лист/Подробности по ссылке…[/url]

no.115278 emvrmri 46.188.18.71 2020-02-16 07:24

[url=https://m-dnc.com/] Гуцулка Ксеня фильм 2020 смотреть онлайн русский. [/url]

发表评论:

邮箱: