详解log4j.properties的简单配置和使用

下面是“详解log4j.properties的简单配置和使用”的完整攻略。

一、log4j.properties概述

log4j.properties是一个Log4j的配置文件。在Java应用程序中使用Log4j,我们通常先要配置log4j.properties文件。

在该文件中可以定义:

  1. 根节点日志级别
  2. 不同包的日志级别
  3. 不同的日志输出方式
  4. 日志格式等

下面简单介绍一下log4j.properties配置文件的语法:

  1. 注释:

注释以#或!开头。例如:

# This is a comment
! This too is a comment

  1. 关键字定义:

关键字是不区分大小写的。

  • log4j.rootLogger:

    根日志的定义,其中控制根日志的基础设置。

    log4j.rootLogger=[日志级别], [Appender名字]

  • log4j.appender.\<name>:

    name是指定的输出源名字。它的最小的排列是输出源的类型和输出源的名字。在这个名字后面可以由一个.和一个子名字来控制这个输出源。

  • log4j.logger.\<logger-name>:

    logger-name是指定的logger名字。log4j表示的是logger的名字,所以如果不指定的话,我们也可以用root表示根Logger。

  • log4j.logger.\<logger-name>.\<level>=\<logger-level>:

    logger-level是logger的级别,我们通常会使用debug、info、warn、error和fatal等级别。

  • log4j.appender.\<name>.threshold=\<level>:

    threshold是指定的level级别。它用来控制一个输出源或一个某个输出源的中的某个appender对象,最多输出一个最高水平的上限值。

  • log4j.appender.\<name>.\<param>=\<value>:

    用来设置输出源实际的效果,其中param是指定的参数,value是指定的参数的效果。

二、log4j.properties实例

  1. 输出到控制台

在这个例子中,我们定义了两个输出源:一个是INFO级别日志输出到控制台、一个是ERROR级别的日志输出到文件。

```properties
log4j.rootLogger=INFO, stdout, file

# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n

# 文件输出
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=log/test.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n

# 不同日志级别输出到不同目标
log4j.logger.com.example=DEBUG, stdout
log4j.logger.org.example=ERROR, file
```

在这个配置中,我们首先指定整个系统的日志级别为INFO级别,然后使用两个appender,一个是ConsoleAppender输出到控制台,一个是DailyRollingFileAppender输出到文件。

在最后,我们又使用logger进行进一步的分级设置,指定了不同的LOG级别对不同的appender进行输出。

  1. 输出到不同的文件

在这个例子中,我们定义了三个输出源:一个是INFO级别的日志输出到test.log中、一个是ERROR级别的日志输出到error.log中、一个是DEBUG级别的日志输出到debug.log中。

```
log4j.rootLogger=DEBUG, stdout

# INFO级别日志记录
log4j.appender.info.file=log/test.log
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.DatePattern='.'yyyy-MM-dd
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.com.example=INFO, info

# ERROR级别日志记录
log4j.appender.error.file=log/error.log
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.DatePattern='.'yyyy-MM-dd
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.org.example=ERROR, error

# DEBUG级别日志记录
log4j.appender.debug.file=log/debug.log
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.DatePattern='.'yyyy-MM-dd
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.com.example.dao=DEBUG, debug
```

在这个配置中,我们首先指定整个系统的日志级别为DEBUG级别,然后使用三个appender,分别输出到不同的文件中。

接着,我们使用logger进行进一步的分级设置,指定了不同日志级别输出到不同的输出源。

例如,com.example包下的DEBUG级别的日志输出到debug.log中。

三、总结

通过上面两个例子,我们可以看到如何使用log4j.properties来对系统中的日志输出进行配置。

在使用中,我们首先需要了解Log4j的基本原理和语法规则。

接着,我们需要根据实际的需求,针对不同的输出目标和不同的日志级别,配置log4j.properties文件。

最后,在输出日志时,我们通过logger进行日志的调用,Log4j再根据配置文件进行日志的输出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解log4j.properties的简单配置和使用 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 刷机出现adb或者fastboot不是内部或者外部命令时怎么办?如何解决?

    以下是“刷机出现adb或者fastboot不是内部或者外部命令时怎么办?如何解决?”的完整攻略: 刷机出现adb或者fastboot不是内部或者外部命令时怎么办?如何解决? 如果您在刷机过程中出现了“adb或者fastboot不是内部或者外部命令”的错误提示,您可以按照以下步骤进行操作: 检查adb或fastboot是否正确安装:首先,您需要检查adb或fa…

    html 2023年5月18日
    00
  • Excel打开CSV文件中文显示乱码该怎么办?

    当我们用Excel打开CSV文件时,由于编码格式的不同,可能会出现中文显示乱码的情况。针对这一问题,我们可以采用以下方法进行解决: 1. 确保CSV文件编码格式正确 CSV文件本身是没有编码格式的,但我们在将其生成过程中,可以指定其编码格式,比如UTF-8、GB2312等。因此,在打开CSV文件前,我们需要确认其编码格式,确保其与Excel使用的编码格式相同…

    html 2023年5月31日
    00
  • 新人在抖音里开直播怎么操作

    以下是“新人在抖音里开直播怎么操作”的完整攻略: 新人在抖音里开直播怎么操作? 在抖音里开直播是一种新型的社交方式,可以让用户通过直播与粉丝互动、分享生活、展示才艺等。以下是一些操作步骤和攻略。 步骤1:了解抖音直播的基本概念 在开始抖音直播之前,需要了解一些基本概念,包括: 抖音:一款流行的短视频应用程序。 直播:一种实时的视频直播方式,可以让用户与粉丝互…

    html 2023年5月18日
    00
  • Android Kotlin开发实例(Hello World!)及语法详解

    Android Kotlin开发实例(Hello World!)及语法详解 简介 本文将介绍如何使用Kotlin编写Android应用程序,并提供代码示例和语法详解。 Kotlin是一种在JVM上运行的静态类型编程语言,由JetBrains开发。它可以与Java互操作,并且在Java框架中使用。在Android开发中,Kotlin已经变得越来越流行,因为它具…

    html 2023年5月30日
    00
  • Html5 语法与规则简要概述

    HTML5 是用于编写 Web 页面的最新版本的超文本标记语言。在本文中,我们将对 HTML5 的语法和规则进行简要概述。 HTML5 的基本结构 HTML5 页面的基本结构如下: <!DOCTYPE html> <html> <head> <title>页面的标题</title> </hea…

    html 2023年5月30日
    00
  • 什么是 WML?

    WML(Wireless Markup Language)是一种针对移动设备的标记语言。它主要用于创建在低带宽和小屏幕设备上运行的网站。WML是一种用于编写 WAP(Wireless Application Protocol)页面的语言。 WML 页面能够使用 WAP 浏览器在移动设备上进行访问,WML 页面的设计目的主要是兼容移动设备(如手机、平板电脑等小…

    html 2023年5月30日
    00
  • JSP语法Page指令

    JSP语法中Page指令用于定义JSP页面的一些特殊属性。 Page指令语法 Page指令必须包含在JSP页面的第一行,其语法格式如下: <%@ page 属性名1="属性值1" 属性名2="属性值2" … %> Page指令的属性值必须用双引号括起来,多个属性以逗号分隔,可以换行书写,但不要在属性值之…

    html 2023年5月30日
    00
  • JAVA POST与GET数据传递时中文乱码问题解决方法

    以下是详细讲解“JAVA POST与GET数据传递时中文乱码问题解决方法”的完整攻略。 一、背景 在使用 Java 进行 POST 与 GET 数据传递时,如果传递的数据中含有中文字符,就很容易出现乱码的情况。那么如何解决这个问题呢? 二、解决方法 在使用 GET 方法传递中文数据时,可以使用 URLEncoder 进行编码,使用 URLDecoder 进行…

    html 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部