Log4j2 HTMLLayout 配置使用详解

教程分享 > Java教程 (1365) 2024-07-19 16:34:00

这个Log4j2示例将帮助您使用HTMLLayout配置log4j2.xml文件。 HTMLLayout生成一个HTML页面,并将每个log语句添加到表中的一行。
 

HTMLLayout 配置

您可以在配置HTMLLayout时使用以下属性:

  1. locationInfo – 如果为“ true”,则将包括位置信息。 默认为false。
  2. title – 要包含在文件标题中的标题。 如果未指定,则使用默认标题。
  3. contentType – 内容类型。 默认为“ text / html”。
  4. charset – 要使用的字符集。 如果未指定,将使用默认值。
  5. fontSize – 文本的字体大小。
  6. font – 用于文本的字体。

我们来看看用于生成基于HTML格式的日志文件的不同配置选项。

$title(log4j2.xml)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
    <Properties>
        <Property name="basePath">C:\\logs</Property>
    </Properties>
    <Appenders>
        <RollingFile name="fileLogger" fileName="${basePath}/app-info.html"
                     filePattern="${basePath}/app-info-%d{yyyy-MM-dd}.html">
            <HTMLLayout charset="UTF-8" title="Howtodoinjava Info Logs" locationInfo="true" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
        </RollingFile>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout   pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="com.howtodoinjava" level="debug" additivity="false">
            <appender-ref ref="fileLogger" level="debug" />
        </Logger>
        <Root level="debug" additivity="false">
            <appender-ref ref="console" />
        </Root>
    </Loggers>
</Configuration>

 

$title(log4j2.properties)
status = error
name = PropertiesConfig
  
#Make sure to change log file path as per your need
property.filename = C:\\logs\\app-info.html
  
filters = threshold
  
filter.threshold.type = ThresholdFilter
filter.threshold.level = debug
  
appenders = rolling
  
appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = debug-backup-%d{MM-dd-yy-HH-mm-ss}-%i.html.gz
appender.rolling.layout.type = HTMLLayout
appender.rolling.layout.charset = UTF-8
appender.rolling.layout.title = Howtodoinjava Info Logs
appender.rolling.layout.locationInfo = true
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 20
  
loggers = rolling
  
#Make sure to change the package structure as per your application
logger.rolling.name = com.howtodoinjava
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile

 

$title(log4j2.json)
{
   "configuration": {
      "name": "Default",
      "appenders": {
         "RollingFile": {
            "name":"File",
            "fileName":"C:/logs/howtodoinjava.html",
            "filePattern":"C:/logs/howtodoinjava-backup-%d{MM-dd-yy-HH-mm-ss}-%i.html.gz",
            "HTMLLayout": {
               "charset":"UTF-8",
               "title":"Howtodoinjava Info Logs",
               "locationInfo":"true"
            },
            "Policies": {
               "SizeBasedTriggeringPolicy": {
                  "size":"10 MB"
               }
            },
            "DefaultRolloverStrategy": {
               "max":"10"
            }
         }
      },
      "loggers": {
         "root": {
            "level":"debug",
            "appender-ref": {
              "ref":"File"
            }
         }
      }
   }
}

简单日志测试

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
 
public class Log4j2HelloWorldExample 
{
    private static final Logger LOGGER = LogManager.getLogger(Log4j2HelloWorldExample.class.getName());
     
    public static void main(String[] args) 
    {
        LOGGER.debug("Debug Message Logged !!");
        LOGGER.info("Info Message Logged !!");
        LOGGER.debug("Another Debug Message !!");
    }
}

Log4j2 HTMLLayout 输出

日志输出
日志输出



 

https://www.leftso.com/article/806.html

相关文章
这个Log4j2示例将帮助您使用HTMLLayout配置log4j2.xml文件
log4j使用,log4j框架在java编程中还是比较常见的,这里将会讲解通过log4j2的LevelRangeFilter将不同级别log存放不同文件中。
简介       Apache Log4j2是对Log4j 1.x的升级,在性能上进行了重大改进,改进了配置文件的自动重装,Java 8 lambda支持和自定义日志级别,从而对Log4j 1....
概述       学习配置log4j2.properties文件以将日志语句输出到控制台,滚动文件等
概述下面的log4j2转换模式仅供参考,这样您和我就不会在每次创建/编辑log4j配置文件时浪费时间来构建这些模式
ConsoleAppender概述       Log4j2 ConsoleAppender将应用程序生成的日志事件附加到System.out或System.err中
概述       Log4j2 RollingFileAppender是一个OutputStreamAppender,它遵循有关何时应进行滚动(备份)的已配置触发策略,将日志消息写入文件
概述给定log4j2.xml是配置configure multiple appenders(例如控制台附加程序和文件附加程序)的参考
概述了解如何使用log4j LevelRangeFilter过滤器,如果LogEvent中的级别在配置的最小和最大级别范围内,则返回onMatch结果,否则返回onMismatch值
Java编程之Spring Boot 使用SLF4J Logging,spring boot,SLF4J
概述       Log4j2 ThreadContext允许您使用多个唯一的标签标记日志语句,以分析日志,同时在运行时诊断问题-主要是在多线程应用程序中,其中应用程序会在短时间内生成大量日志
modbus tcp 通讯协议在Java编程中的使用。本文主要讲解Java编程中通过modbus4j工具类来实现modbus tcp通讯协议的通讯。包括通过modbus协议读取数据,写入数据的实现。
本文章主要简单讲解目前流行的springMVC4+Spring4+MyBatis3(即SSM)框架整合
前言任何框架使用都是需要日志框架的,方便排查问题和记录一些重要信息,本文主要讲解vert.x4 结合logback日志。 引入依赖maven pom.xml&lt;d
前言引用《Vert.x 4 Web REST CRUD接口应用》项目,加入日志依赖并编码实现类似Interceptor功能处理。vert.x日志集成参考《Ver