如何配置我的log4j(使用Glassfish)登录日志目录,而不是配置?

时间:2009-09-10 12:35:52

标签: java logging glassfish

我的log4j.properties文件中有以下行:

log4j.appender.logfile.File = MyApplication.log

我的日志文件出现在MyDomain / config目录中,但我希望它登陆MyDomain / logs目录。我怎样才能做到这一点?我不允许修改startserv脚本。

提前感谢您的帮助!

5 个答案:

答案 0 :(得分:8)

实际上,解析变量$ {catalina.home}的是log4j,Glassfish声明$ {catalina.home}为$ {com.sun.aas.instanceRoot}指向path / to / MyDomain /

您可以在GF环境中声明任何变量并将其放在log4j.properties上,log4j将在配置log4j时解析它们。

这对于设置基于服务器的日志记录配置参数非常有用,使用相同的log4.properties进行测试和部署

答案 1 :(得分:7)

您可以将appender设置为使用$ {com.sun.aas.instanceRoot},但与其他评论不同的是:

log4j.appender.logfile.File=${com.sun.aas.instanceRoot}/logs/MyApplication.log

这是../domains/domain{x}/logs目录中日志的正确位置。

答案 2 :(得分:1)

以下是可能的Tomcat,也许Glassfish设置一个类似的环境变量指向它的文件系统位置:

log4j.appender.logfile.File=${catalina.home}/logs/MyApplication.log

${catalina.home}是由Tomcat设置的环境/系统属性,指向它的安装目录。 Log4j能够扩展这些,至少在PropertyConfigurer

答案 3 :(得分:0)

您需要指定绝对路径,而不是相对路径(假设是Unix路径):

log4j.appender.logfile.File=/path/to/MyDomain/logs/MyApplication.log

答案 4 :(得分:0)

因为在GlassFish中,文件登陆配置和日志是它的兄弟,而不是

log4j.appender.logfile.File=MyApplication.log

使用

log4j.appender.logfile.File=../logs/MyApplication.log

在GlassFish 3.1.1上测试,它可以工作。

相关问题