我有一个基本工具,允许用户远程将更改应用到我的应用程序中的日志文件。某些日志是使用java.util.logging属性文件配置的,有些是使用log4j / log4cplus样式的属性文件配置的。我想对用户尝试应用的属性进行一些基本验证。也就是说,我想保证以下内容:
实现这一目标的最佳方法是什么?我显然可以循环遍历Properties对象中的键和值,并在硬编码的Map或其他一些数据结构中查找它们的值,这些数据结构告诉我们有效的属性是什么,但我正在尝试提出一个解决方案。比那更优雅。
答案 0 :(得分:1)
对属性文件运行任何一组部分语法检查的问题是,除非您捕获日志记录系统可接受的每个部分变体,否则它们将始终不合适,在这种情况下,您将重新创建一部分伐木系统。无论您选择哪种属性来验证,都必须提供其他方式来提交损坏的文件。
为什么不根据输入文件创建一个额外的(临时的,仅用于检查的范围)记录器对象,而不是测试单个属性,并检测它是否抛出错误?
答案 1 :(得分:0)
“优雅”的解决方案是编写一个基于规则的引擎来检查名称 - 值对的集合。但IMO对于这个用例来说完全超出了顶级......除非检查比我想象的要复杂得多。
我会说在这种情况下,简单(不优雅)的解决方案是最好的。