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

log4j日志文件名?

呼延升
2023-03-14
问题内容

我们有几个同时运行的作业,它们必须为log4j使用相同的配置信息。他们都使用相同的附加程序将日志转储到一个文件中。有没有一种方法可以让每个作业动态命名其日志文件,以使它们保持独立?

谢谢
汤姆


问题答案:

您可以为每个作业传递Java系统属性吗?如果是这样,您可以像这样进行参数化:

java -Dmy_var=somevalue my.job.Classname

然后在您的log4j.properties中:

log4j.appender.A.File=${my_var}/A.log

您可以使用主机环境(例如)中的值填充Java系统属性,该值将唯一地标识作业实例。



 类似资料:
  • 问题内容: 我正在开发一个通过Commons使用Log4J的项目。 我正在尝试找到日志文件的路径,但是没有找到合适的方法来从Logger返回日志文件的路径。 有人尝试过吗? 问题答案: 您必须 从根记录器 获取所有附加程序,然后获取日志文件的名称。

  • 问题内容: 我正在尝试配置log4j以将消息记录到文件中。现在,确实使用我提供的名称创建了该文件,但是日志未写入该文件。我的代码: 我文件的内容: 运行此命令时,将在控制台中获得以下输出: 该文件确实在我的主目录中创建。但是它是空的。 有什么想法我做错了吗?我正在使用log4j 1.2.17版。 问题答案: 输出似乎是Java标准日志记录框架(JUL)发出的默认格式。 因此,有两种可能性(想到):

  • 我使用log4j进行日志记录,并且使用.log格式的所有日志文件,其结构简单,如; log4j.rootcategory=info,C,R log4j.appender.c=org.apache.log4j.consoleappender log4j.appender.c.layout=org.apache.log4j.patternlayout log4j.appender.r.layout=o

  • 我试图实现log4j。我用log4j创建了一个示例java程序。 下面是我的log4j。属性: 我正在控制台屏幕上获取输出。但是没有生成日志文件。我必须做什么才能生成日志文件,谢谢

  • 我在Azure中有一个应用程序洞察资源。在我们的Java应用程序中,我们有一个log4j.xml文件,它根据服务名称写入多个日志文件。 我正在将Application Insights appender添加到日志记录中,并且能够在Application Insights资源中看到不同日志文件的所有日志。但是,我无法在Application Insights中通过日志文件名进行筛选,因此跟踪日志是没

  • 问题内容: 有没有一种方法可以将log4j日志事件写入到也由其他应用程序写入的日志文件中。其他应用程序可以是非Java应用程序。有什么缺点?锁定问题?格式化? 问题答案: Log4j有一个SocketAppender,它将事件发送到服务,您可以自己实现或使用与Log4j捆绑在一起的简单实现。 它还支持syslogd和Windows事件日志,这对于尝试将日志输出与非Java应用程序中的事件统一起来可