代码之家  ›  专栏  ›  技术社区  ›  Berlin Brown

在加载前将属性传递给log4j

  •  1
  • Berlin Brown  · 技术社区  · 14 年前

    是否有方法在加载之前将数据或设置传递给log4j,然后在配置文件中使用该属性。

    我假设有一个系统属性可以使用:

    log4j。附录。R、 文件=/usr/local/pfs/logs/${ws.host}/log4j。日志

    其中ws。host是我想要使用的属性。

    但我如何设置该值?

    此外,我在一个网络环境中。我如何知道在加载log4j之前在什么时候设置属性设置。

    1 回复  |  直到 14 年前
        1
  •  4
  •   kaliatech    14 年前

    默认的log4j PropertiesConfiguration支持变量替换。

    "-DmyProject.logFile="/temp/test.log" 到Java启动,然后在属性文件中 "log4j.appender.R.File=${myProject.logFile}" .

    如果在web环境中工作,您可能希望查看Spring的 Log4jConfigListener . 它使用监听器(Servlet API 2.4+)在其他组件之前初始化log4j。即使不使用Spring,您也应该能够以源代码为例轻松创建自己的侦听器。