我在我的 java 应用程序中使用 sikuli-script.jar。它在控制台中写入大量日志消息。所以,我想禁用日志记录或更改日志记录级别。我怎么能做到这一点?那里使用什么日志库以及如何配置它?
5 回答
如果您使用的是 Java,则可能需要查看Sikuli-API。它试图更像是一个标准的 Java 库。
Sikuli-API 使用SLF4J,因此您只需将其连接到您使用的任何日志记录框架(我非常喜欢Logback),它将使用该配置。
您可以在脚本顶部包含此行以禁用操作日志,例如标准输出上的鼠标单击日志:D
Settings.ActionLogs=0
我运行了一些 Sikuli 脚本几次,从未注意到任何详细的输出。我认为您可以通过将这样的选项传递给 JVM来覆盖它:
-Dsikuli.Debug=ERROR
或者
-Dsikuli.Debug=0
这是一个未经测试的答案。你必须自己尝试一下。
在 sikuli-java.jar 中,sikuli-basics 允许访问一些可配置的选项:
Settings.ActionLogs
Settings.InfoLogs
可以将其中一个/两者都分配为 false 以禁用日志记录。
或者,可以使用 Debug.setLogFile(filename) 将输出重定向到文件而不是标准输出。
祝你好运,西库利人!
对于 Mac OS X 10.11.5 和 JDK 1.8 下的 Sikuli 1.1.0,这是我在通过 CLI 运行脚本时可以抑制日志记录的唯一方法:
java -Dsikuli.Debug=-2 -jar /Applications/SikuliX.app/Contents/Java/sikulix.jar -r /path/to/your/test.sikuli
笔记:
1)您必须将 -Dsikuli.Debug 设置为 -2 才能使其工作(感谢@NullPointer)
2)您必须将 -Dsikuli.Debug=-2 作为 JVM 选项放在“java”之后,而不是将其放在命令末尾