有没有办法为Java应用程序转换跟踪和登录,这既不是Java Web Start也不是applet类型的java应用程序?我在谈论一个应用程序,它可以通过双击可执行jar文件执行,也可以通过输入java -jar nameofjarfile.jar从命令行启动。我已在Java控制面板中启用了日志记录和跟踪,但这似乎没有任何效果。我看到的唯一跟踪日志是为执行java控制面板而生成的跟踪日志。据我从文档中可以看出,java控制面板中用于启用日志记录和跟踪的选项特定于Web Start和applet样式应用程序。当我启动桌面java应用程序时,不会生成.trace文件。
提前致谢。
答案 0 :(得分:1)
我不确定您到底在寻找什么,但是对于日志记录,您可以使用多个现成的日志工具,例如slf4j或log4j来命名我使用过的2。无论是否基于Web,它们都可以轻松集成到任何应用程序中。以下是指向这两者的链接:Log4J,slf4j。您也可以找到有用的Mgnt库。它的一个实用程序允许您过滤并显着缩短堆栈跟踪,而不会丢失有意义的信息。但这个实际上对于基于Web的应用程序来说是最有效的,这些应用程序会产生很长的堆栈跟踪,并且会有很多无意义的信息。无论如何,这里是关于Mgnt库的文章的链接,其中包含指向它的链接及其来源:Mgnt
答案 1 :(得分:0)
对于使用常规虚拟机启动的应用程序,似乎没有与Java控制面板中提供的跟踪选项等效。 Java控制面板中的选项专门用于Java Web Start应用程序和Java Applet。通过双击可执行jar文件或在命令行键入java -jar javaapp.jar,它对启动的Java桌面应用程序没有影响。虽然文档说明跟踪是从java控制台输出到.trace文件,但它们所说的控制台是仅适用于Web Start和Applet的Java控制台。他们没有提到标准输出和标准错误。虽然标准输出和标准错误都会输出到Java控制台,但Java控制台还包括JVM本身的引导信息,例如java版本,java可执行文件的确切路径,代理信息等等。我确信有可能通过Java控制面板的跟踪和日志选项或部署属性选项(如-DDeployment.trace = true)生成无法生成等效数据的方法。您可以通过转到Java教程并在他们的教程中启动他们链接到的许多Web启动应用程序之一来查看我所说的信息。确保转到Java控制面板并勾选高级选项卡下的“显示控制台”选项。当您选择此选项启动Java Web Start App时,将打开Java控制台。在Java控制面板的同一“高级”选项卡中选择“启用跟踪”时,该控制台的输出是转储到.trace文件的输出。如果您还启用了日志记录,则会显示控制台输出以XML格式输出到.log文件。