一些log4j配置问题

一些log4j配置问题,log4j,Log4j,我正在做一个项目,我们想用log4j处理日志记录。我遇到了一些问题,通过查看log4j文档或其他在线文档,我无法轻松解决这些问题 我的基本思想是将日志代码放在整个代码库中,然后让属性文件将记录的数据分类到附录的层次结构中,以及如何写入文件。那很好。这基本上允许我在一个硬编码文件夹中创建可浏览的日志文件,例如: log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=example.log 但我有两个

我正在做一个项目,我们想用log4j处理日志记录。我遇到了一些问题,通过查看log4j文档或其他在线文档,我无法轻松解决这些问题

我的基本思想是将日志代码放在整个代码库中,然后让属性文件将记录的数据分类到附录的层次结构中,以及如何写入文件。那很好。这基本上允许我在一个硬编码文件夹中创建可浏览的日志文件,例如:

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
但我有两个基本问题:我希望日志位置是动态的,例如:

log4j.appender.R.File={$processDir}/example.log
此外,每次用户运行此应用程序时,都会创建一个包含输出文件的文件夹。我希望将日志文件放在那里,但我不确定如何实现这一点

另一个问题(虽然我认为一旦解决了第一个问题,这会容易得多…)是关于创建一个格式化日志,它不一定反映应用程序运行的过程…例如,标题,后面是所有输入文件的列表,所有输出文件的列表,遇到的任何警告

为此,我想我将创建一个实现ObjectRenderer的对象,并编写一个doRender方法,该方法提供了我想要的信息

听起来对吗?
谢谢

您可以将变量与此语法一起使用

log4j.appender.R.File=${processDir}/example.log
必须将变量定义为系统属性(es.-DprocessDir=…)或手动(创建文件夹后)使用

System.setProperty("processDir",logDir);