原文: https://howtodoinjava.com/log4j2/log4j2-htmllayout-configuration-example/
此 Log4j2 示例将帮助您使用HTMLLayout配置log4j2.xml文件。 HTMLLayout生成 HTML 页面,并将每个 log 语句添加到表中的一行。
HTMLLayout配置
在配置HTMLLayout时,可以使用以下属性:
locationInfo– 如果为true,则将包括位置信息。 默认为false。title– 要包含在文件头中的标题。 如果未指定,则使用默认标题。contentType– 内容类型。 默认为“text/html”。charset– 要使用的字符集。 如果未指定,将使用默认值。fontSize– 文本的字体大小。font– 用于文本的字体。
我们来看看用于生成基于 HTML 格式的日志文件的不同配置选项。
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>
log4j2.properties
status = errorname = PropertiesConfig#Make sure to change log file path as per your needproperty.filename = C:\\logs\\app-info.htmlfilters = thresholdfilter.threshold.type = ThresholdFilterfilter.threshold.level = debugappenders = rollingappender.rolling.type = RollingFileappender.rolling.name = RollingFileappender.rolling.fileName = ${filename}appender.rolling.filePattern = debug-backup-%d{MM-dd-yy-HH-mm-ss}-%i.html.gzappender.rolling.layout.type = HTMLLayoutappender.rolling.layout.charset = UTF-8appender.rolling.layout.title = Howtodoinjava Info Logsappender.rolling.layout.locationInfo = trueappender.rolling.policies.type = Policiesappender.rolling.policies.time.type = TimeBasedTriggeringPolicyappender.rolling.policies.time.interval = 1appender.rolling.policies.time.modulate = trueappender.rolling.policies.size.type = SizeBasedTriggeringPolicyappender.rolling.policies.size.size=10MBappender.rolling.strategy.type = DefaultRolloverStrategyappender.rolling.strategy.max = 20loggers = rolling#Make sure to change the package structure as per your applicationlogger.rolling.name = com.howtodoinjavalogger.rolling.level = debuglogger.rolling.additivity = falselogger.rolling.appenderRef.rolling.ref = RollingFile
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"}}}}}
示例日志语句
现在,我们使用圆顶日志语句生成日志文件。
package com.howtodoinjava.log4j2.examples;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输出
在上面的日志文件中运行将生成以下 HTMl 文件。

Log4j2 HTMLLayout输出
将我的问题放在评论部分。
参考:
http://logging.apache.org/log4j/2.x/manual/layouts.html#HTMLLayout
