我们正在构建一个自定义软件程序(Java + Spring.io),该程序写入审计跟踪到日志文件(使用 logback)。当用户在系统中执行操作时,会记录审计条目。这很有效。为了 100% 确保不会错过任何事件,还有一个额外的要求:
当将审计事件写入日志失败时,系统会向电子邮件地址(使用配置设置)发送一封电子邮件。
对于验收测试,需要验证此要求。搜索没有找到任何答案,我尝试了两种我能想到的方法:
- 写入日志文件时将其设置为只读. 这不起作用:Windows 会很乐意继续让 JVM 写入现在受写保护的文件。
- 写入网络磁盘并拔掉网线这确实有效,但切断网络连接也会阻止电子邮件传递。此外,验收测试是在虚拟机上进行的,我无法物理访问或控制硬件。
有没有办法手动触发 Windows Server 2012 R2 中的文件的“写入失败”,以便 Java JVM 认为写入失败?