java - 使用 HTML 自定义格式的 Log4j.properties 进行日志记录

标签 java logging log4j

我需要帮助编辑 Apache Log4j 文件的输出。 我正在使用 html 布局来保存创建的日志。这是我的 log4j.properties 代码:

log4j.rootLogger = DEBUG, FILEALL, FILEMAIN

log4j.appender.FILEMAIN=org.apache.log4j.FileAppender
log4j.appender.FILEMAIN.File=${logfileall.name}
log4j.appender.FILEMAIN.layout=org.apache.log4j.HTMLLayout
log4j.appender.FILEMAIN.Threshold=DEBUG

log4j.appender.FILEALL=org.apache.log4j.FileAppender
log4j.appender.FILEALL.File=${logfilemain.name}
log4j.appender.FILEALL.layout=org.apache.log4j.HTMLLayout
log4j.appender.FILEALL.Threshold=WARN

这会创建一个像这样的日志文件 enter image description here

我对如何更改输出格式感到困惑。

我希望“时间”列以 HH:mm:ss.S 格式显示时间戳,但不希望“线程”列,

另外,如果可能的话,我想将类别重命名为类路径之类的名称。

请帮忙,我应该如何修改我的 Log4j.properties 文件才能完成上述事情

最佳答案

您只能更改 org.apache.log4j.HTMLLayout 的以下选项:

log4j.appender.FILE.layout.Title=HTML Layout Demo
log4j.appender.FILE.layout.LocationInfo=true

顺便说一下,你可以扩展这个 class并重写方法

public String format(LoggingEvent)
public String getHeader()

第一个方法获取每个事件的 HTML 代码(例如表中的新行)。第二种方法获取 header 的 HTML(从 DOCTYPE 声明到表标题行,例如 <thead>...</thead><tbody> )。

关于java - 使用 HTML 自定义格式的 Log4j.properties 进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15233582/

相关文章:

使用 fluidd 导出 Java 日志记录

java - 如何从父类(super class)对象调用子类方法

java - 如何在 jsoup 中处理 JavaScript 重定向

logging - 为什么 reducer 在此代码后停止工作?

java - Java 中的日志记录是怎么回事?

java - log4j的优势

java - 如何使用我的 .properties 文件中的自定义消息,但使用 @Size 注释提供的参数?

java - 检查字符串数组是否包含值

logging - 在 Docker 应用程序中使用 Logback 更改动态日志级别

类 pat 上的 java.lang.IllegalStateException : Detected both log4j-over-slf4j. jar 和 slf4j-log4j12.jar