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

配置Log4j属性路径的最佳实践

董洲
2023-03-14
问题内容

我在应用程序中使用Log4j。log4j.properties放置在classpath中的Jar中。该配置文件正在使用中,并且在大多数情况下都可以正常工作。

但是有时,生成的日志记录语句与配置文件不同。

我的理解是,这是因为属性文件是从类路径中获取的。不管第一个属性文件是什么,都由log4j获取和使用。因此,有时我们得到的日志记录语句与属性文件中配置的语句不同。

如果上述原因属实,那么我认为,我们需要通过以下方式之一专门指定配置文件:

  1. 使用系统属性指定:-Dlog4j.configuration = log4j.properties
  2. 初始化Log4jInit Servlet。

请提出哪种方法更好。


问题答案:

在我的应用程序中,我使用${user.home}dir进行存储,log4j.properties而使用ant进行读取。它将独立于平台。也可以在classpath中通过build传递一个,但是从$
{user.home}读取是更好的方法,您或任何非技术人员都可以轻松访问它。

你也可以用

动态日志文件位置

许多人抱怨Log4j迫使您硬编码将保存日志的位置。实际上,可以动态选择日志文件的位置,尤其是在使用上述$
{log.dir}属性替换技术的情况下。这是如何做:

String dynamicLog = // log directory somehow chosen...
Properties p = new Properties( Config.ETC + "/log4j.properties" );
p.put( "log.dir", dynamicLog ); // overwrite "log.dir"
PropertyConfigurator.configure( p );

另请参阅

  • 有效的日志记录做法可简化企业发展
  • Log4j最佳做法


 类似资料:
  • 本文档旨在汇总和强调用户指南、快速开始文档和示例中的最佳实践。该文档会很活跃并持续更新中。如果你觉得很有用的最佳实践但是本文档中没有包含,欢迎给我们提Pull Request。 通用配置建议 定义配置文件的时候,指定最新的稳定API版本(目前是V1)。 在配置文件push到集群之前应该保存在版本控制系统中。这样当需要的时候能够快速回滚,必要的时候也可以快速的创建集群。 使用YAML格式而不是JSO

  • 我已经寻找了一段时间的实际示例,以了解Maven获取资源的相对路径最佳实践,但我感到困惑,希望您能支持我了解什么是获取资源的最佳实践,以及如何应用于具体示例: 具体示例: 结构假设我有以下结构,并试图从文件夹规划中的类中获取资源(位于资源中),所以基本上我试图创建一个与maven执行一致的相对路径的字符串: 类RunCapacityPlanning,它获取我当前使用的以下快速修复程序的资源 上面的

  • 本文是对Kubernetes集群安全性管理的最佳实践。 端口 请注意管理好以下端口。 端口 进程 描述 4149/TCP kubelet 用于查询容器监控指标的cAdvisor端口 10250/TCP kubelet 访问节点的API端口 10255/TCP kubelet 未认证的只读端口,允许访问节点状态 10256/TCP kube-proxy kube-proxy的健康检查服务端口 909

  • 例如,对于基于spring的项目,有eureka config(eureka.properties)、zuul config(zuul.properties)、feign config(feign.properties)等。

  • 最佳路径,是求解网络中两点之间阻抗最小的路经,必须按照结点的选择顺序访问网络中的结点。“阻抗最小”有多种理解,如基于单因素考虑的时间最短、费用最低、风景最好、路况最佳、过桥最少、收费站最少、经过乡村最多等。 下面以长春数据为例,计算地图中将要行走的地点间的最佳路径。其接口使用方法如下: 设置最佳路径分析参数 findPathParameter,包括交通网络分析通用参数、途径站点等; //设置网络分

  • 本文向大家介绍webpack配置的最佳实践分享,包括了webpack配置的最佳实践分享的使用技巧和注意事项,需要的朋友参考一下 本文主要介绍了关于webpack配置的最佳实践,本文分享的实践具有以下的优势: 使用happypack提升打包速度。 使用MD5 hash可以生成文件版本,进行版本控制 在非单页面的系统中支持多个入口的配置 模板中可以利用htmlplugin输出一些配置性的信息 支持de