【发布时间】:2013-02-27 15:41:37
【问题描述】:
在我的默认 cstr 中,我实例化了我的 log4j 记录器,其中我想在运行时发送日志文件目录路径。
我的默认 cstr 有这个:
logger = new LoggerSetup().SetLogger(Logger.getLogger(ServiceController.class), "FileLogger", LogDirPath);
我在我的属性文件中设置了路径,并通过
@Value("#{settings['ApplicationLogDirPath']}")
private String LogDirPath;
但是,由于在连接 @Value 之前调用了 cstr,因此 cstr 中的 LogDirPath 始终为空。
还有其他我应该使用的注释还有更好的方法吗?
我想要实现的是从日志文件动态设置 log4j 日志路径,此外我的控制器需要 2 个记录器,以便将应用程序级日志记录到一个位置并长时间运行数据库调用 [控制器调用 biz layer ] 写入另一个位置。控制器在调用 biz 层之前记录,然后一旦 biz 层返回它就会记录该记录,因此会记录 2 个不同的日志文件。客户需要这种奇怪的日志记录,所以它就是这样
【问题讨论】:
-
您可能需要将路径作为 vm 参数传递,例如
-DlogPath=<path> -
部署时这是如何工作的?
-
部署流程是什么
-
用eclipse构建war文件,停止tomcat,放入webapps,启动tomcat并部署应用程序。停止tomcat,删除war文件并重启tomcat
-
在这种情况下这是不可能的,如果您使用的是安装程序,我们可以设置参数。是日志位置的来源吗?它是从属性文件加载的吗?
标签: spring-mvc log4j