我目前正在尝试为工作中的程序编写错误日志记录实用程序,以便在多个步骤中自动执行其他产品执行的任务(这是Selenium,但我认为这不相关)。
当某个特定任务的步骤失败时,我想确定该步骤,以及它在整个特定任务中失败的次数(许多步骤是通用的并且重复,例如“发送消息到X”,“更新X日志”等)
我面临的问题是,当它计算错误时,它没有正确递增。如果一个步骤失败一次,它将把它作为1的计数。如果一个步骤失败两次,则计数将保持为1.如果失败3次,则计数将增加到2,如果4次将增加到3,等等。
这意味着如果一个步骤失败不止一次,我的计数总是一个一个 我用于这项工作的代码是:
int count = map.containsKey(word) ? map.get(word) : 0;
if(word.startsWith("api") && line.contains(date.toString())){
if (!map.containsKey(word)) {
map.put(word, 1);
} else {
map.put(word, count + 1);
}
}
任何指针都会非常感激。 问候, 注册
答案 0 :(得分:1)
您应该尝试将其更改为
if (!map.containsKey(word)) {
map.put(word, 1);
} else {
map.put(word, map.get(word) + 1);
}
变量count
值在执行期间可能已过时。这类问题最适合调试。尝试逐步跟踪count
的值,这将有助于您解决此问题。