繁体   English   中英

如何验证Java日志记录属性文件?

[英]How to validate Java logging properties files?

我有一个基本功能,允许用户远程将更改应用于应用程序中的日志文件。 有些日志是使用java.util.logging属性文件配置的,有些则是使用log4j / log4cplus样式的属性文件配置的。 我想对用户尝试应用的属性进行一些基本验证。 即,我想保证以下几点:

  • 每个logging.properties文件必须始终至少包含一个根logger / logging级别
  • 记录器/级别必须设置为有效值。 也就是说,他们应该不能设置.level = GIBBERISH或类似的东西。
  • 我可能会允许他们设置MaxFileSize和MaxBackupIndex(log4j)以及.limit和.count属性(java.util.logging)。

做到这一点的最佳方法是什么? 很明显,我可以循环遍历Properties对象中的键和值,并在硬编码的Map或一些其他数据结构中查找它们的值,以告知有效的属性是什么,但是我试图提供一种解决方案比这更优雅。

对属性文件运行任何一组部分语法检查的问题在于,它们在定义上总是不足够的,除非您捕获了日志记录系统可接受的每个部分变化,在这种情况下,您将重新创建日志记录系统的一部分。 无论您选择验证哪些属性,都必定会有其他方式提交损坏的文件。

而不是测试单个属性,为什么不根据输入文件创建另一个(临时的,仅在检查范围内)记录器对象,并检测它是否引发错误?

“优雅”的解决方案是编写一个基于规则的引擎来检查名称-值对的集合。 但是,在这种用例中,IMO绝对是最重要的……除非检查比我想象的要复杂得多。

我想说,在这种情况下,简单(模糊)的解决方案是最好的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM