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

log4j创建的文件中的主机名

东门修能
2023-03-14
问题内容

我在Linux机器(RHEL 5.4)上使用Java 1.4.2。

我们的应用程序使用log4j进行日志记录。我希望某些附加程序可以创建文件名中包含主机名的文件。不应对主机名进行硬编码,而应使用类似于此处的系统属性(请参见$
{log4j.minutes})。

所以问题是系统属性中是否有主机名。根据此处,没有默认的主机名属性。

这意味着我需要从命令行(-D标志)的代码中添加主机名作为系统属性。

我想念什么吗?


问题答案:

否。系统属性中没有默认主机名。同样,一台计算机可能具有多个网卡,并且每个网卡可能分配了多个IP编号,每个IP编号可能都有其自己的名称,因此“默认主机名”可能是多个候选者。

提取所需的主机名后,请研究如何将其保存在log4j MDC中(这是一种伪装的Map,因此您可以在配置中的日志记录字符串中进行引用)。



 类似资料:
  • 我使用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

  • 问题内容: 如何确定所创建文件的权限? 我最近更改了一个守护进程,我必须以非root用户身份运行,并且现在正在使用许可(仅所有者可以读取)创建文件,但是我希望它们可以被全部或至少成员读取。管理员组(或)。我的tomcat应用程序创建的文件始终(所有人可读)。 我不知道我是否无意中更改了其他内容,或者是否与该用户的权限有关。我将父目录作为测试进行了,它似乎没有帮助(它是)。显然,因为我可以看一下它们

  • 问题内容: 我正在使用Log4j作为我正在研究的项目中的日志记录框架。我有以下情况:Log4j配置为将日志写入日志文件。有时,此日志文件将复制到另一个目标并删除。日志记录框架可以正常工作,但是由于已删除日志,因此日志未写入日志文件。有什么方法可以告诉Log4j重新创建文件并继续将日志写入日志文件。 最好的问候,拉希德 问题答案: 我研究了log4j的来源,发现log4j无法创建新的日志文件,它只是

  • 使用docker container inspect xxx,我可以找到装载信息。 在docker exec-it xxx bash之后,就会出现部署/应用/日志目录,其中的文件也会更新 但是,主机上没有创建主/应用程序日志目录,我仔细检查了源代码是否正确,例如部署/应用程序/日志 这个问题与我的情况非常接近,因为讨论使用目录装载的答案可以解决这个问题,这意味着不是我的问题。Docker bind

  • 我不清楚java程序是如何知道xml文件的位置的。我想这就是问题所在。这就是我在代码中的设置, 任何帮助都是徒劳的。谢了。

  • 问题内容: 我想在我的Java项目中使用Log4j,我应该在配置文件中提供该配置,该配置文件每天晚上12:00将生成一个新文件,并且文件名应类似于 -output- log-of-MyProjectName-HostName-2013-Dec-10。 txt 名称)。我的配置文件就是这样- 它每天都在创建新文件,但在文件名后附加日期。请帮我。提前致谢。 问题答案: 我认为您想要DailyRolli