【发布时间】:2018-04-09 15:01:18
【问题描述】:
随着系统的发展,日志语句将被更改以满足新的需求,理想情况下,具有相同或非常相似上下文的日志语句应该一致地更改。但在许多情况下,开发人员很难记住所有这些人的存在。那么他们可能只改变其中的一部分,而忘记始终如一地改变其他的。
以这段Java代码sn-p为例,有两个兄弟类(ChildClassA,ChildClassB)都扩展了同一个超类(ParentClass),它们有一对相似的方法,功能相似,包含相同记录语句。
public class ChildClassA implements ParentClass{
public void processShellCommand(){
...
logger.error("Error initializing command, field " + field.getName() + " is not accessible.");
...
}
public class ChildClassB implements ParentClass{
public void processNetworkCommand(){
...
logger.error("Error initializing command, field " + field.getName() + " is not accessible.");
...
}
是否有解决方案,例如工具,或一些文档等,可以帮助它们进行一致的更改?
【问题讨论】:
-
一般的方法称为重构。您可能会考虑在父类中添加一个为该情况生成错误字符串的方法:
logger.error( notAccessible( field.getName() ) );