2012-03-28 59 views
0

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

我得到将日志代码放到整个代码库的基本思路,然后让属性文件将日志数据分类到appender层次结构以及如何写出文件。没关系。基本上,这允许我创建一个硬编码文件夹greppable日志文件,比如这个:

log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=example.log 

但是我有两个基本问题:我想有日志位置是动态的,如:

log4j.appender.R.File={$processDir}/example.log 

此外,每次用户运行此应用程序时,都会使用输出文件创建一个文件夹。我想将日志文件放在那里,我不知道如何实现。

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

我认为,我会创建一个实现了ObjectRenderer的对象,并编写一个doRender方法给我我想要的信息。

这听起来是否正确? 谢谢!

回答

1

可以使用变量使用此语法

log4j.appender.R.File=${processDir}/example.log 

必须定义变量作为系统性能(ES。-DprocessDir = ...)或手动

System.setProperty("processDir",logDir); 
(创建文件夹之后)