当前位置: 首页 > 面试题库 >

Log4J动态更改文件路径

晋鹤轩
2023-03-14
问题内容

我想动态更改log4j日志文件的路径和文件名。

我已经阅读了很多页面,几乎每个页面都告诉我应该使用此处的系统属性:
[如何动态更改log4j日志文件?](http://codingdict.com/questions/141150
所以我的log4j.properties文件看起来像这样:

log4j.logger.JDBC_LOGGER=INFO,jdbcTests
log4j.additivity.JDBC_LOGGER = false

log4j.appender.jdbcTests=org.apache.log4j.FileAppender
log4j.appender.jdbcTests.File=${my.log}
log4j.appender.jdbcTests.layout=org.apache.log4j.PatternLayout
log4j.appender.jdbcTests.append = false
log4j.appender.jdbcTests.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %C:Line %L - %m%n

在我的主要方法中,我将设置新的系统属性:

System.setProperty("{my.log", "C:/logfile.log");

但是我只是得到一个错误:

log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException: 
    at java.io.FileOutputStream.open(Native Method)....

当我尝试使用以下命令读取设置的系统属性时:

System.out.println(System.getProperty("my.log"));

它返回null。我做错了什么?


问题答案:

我认为您的意思是“ my.log”而不是“ {my.log”

System.setProperty("my.log", "C:/logfile.log");

我无法想象一旦记录开始就可以更改此设置,因此您需要在程序中尽早设置此设置。

顺便说一句:您可以对FileAppender进行子类化,以使其表现出您喜欢的任何方式。



 类似资料:
  • 问题内容: 我想要一个log4j配置,这样日志文件名应该像$ {System-name} log.log。也就是说,如果该应用程序在任何系统上启动,则无需更改配置文件或代码。它应该生成提到的日志文件名。谢谢。 问题答案: 我这样做: 1)通过以下方式初始化记录器: 2)在log4j.xml中我使用变量:

  • 问题内容: 我在具有基本HTTP服务器(没有Express或Connect或类似的东西)的Node服务器上使用Socket.IO。默认情况下,Socket.IO将客户端文件提供给 /socket.io/socket.io.js 我希望能够将该基本路径更改为其他内容,例如 /foo/bar/socket.io/socket.io.js 是否有任何内置方法来执行此操作,或者是否有任何不更改Socket

  • 问题内容: 我正在尝试将blueimp Jquery File Upload插件用于我当前正在处理的项目。它完全适合我的需求,但有一个问题:我需要能够基于包含插件的页面上的GET变量来更改上传的路径。基本上,我将其用作一组车辆的图像管理器,并且希望它连接到每个车辆的单独文件夹。 我一直在浏览文档并进行谷歌搜索,并且找到了更改默认目录的方法(通过修改upload.class.php),但是由于我需要

  • 问题内容: 我希望我的Web应用程序使用以下路径登录文件:webapp / logs / 我可以在log4j.properties文件中设置绝对路径,但是生产环境的目录结构将有所不同。有什么办法可以做到吗? 这是我的方法: 这是将日志打印到我的eclipse目录(c:// eclipse)中名为log.log的文件中。我正在使用Tomcat 6。 问题答案: log4j能够扩展系统属性,因此,如果

  • 问题内容: 我正在从数据库中成功获取数据值。我也将它们存储到一个数组中。我需要将String数组作为项的加载,以响应执行的关键操作。每当获取按键值时,如何获取按键值,就如何重新加载项目。相反,我需要动态刷新项目。 问题答案:

  • 这篇文章和上一篇cesium编程中级(六)全球视频纹理一样,也是跟群友一起讨论时想出的解决方案^^ 起因是群友希望完成一个功能,在加载czml数据之后,有物体沿着czml中的路径运动,然后运动过程中,会每个几秒钟在路径最后添加一个点,希望能看到路径动态改变而且物体的移动连贯 这里其实重要的点有两个 1. 路径后面每隔一段时间添加一个点 2. 物体连贯运动(这一点是在完成之后,回过头来反思直接写出来