【问题标题】:Use java tracing facilities with a desktop application在桌面应用程序中使用 java 跟踪工具
【发布时间】:2023-03-15 09:25:02
【问题描述】:

有没有办法为既不是 Java Web Start 也不是 applet 类型的 java 应用程序的 java 应用程序启用跟踪和登录?我说的是一个应用程序,它可以通过双击可执行的 jar 文件来执行,也可以通过键入 java -jar nameofjarfile.jar 从命令行启动。我在 Java 控制面板中启用了日志记录和跟踪,但这似乎没有效果。我看到的唯一跟踪日志是为执行 java 控制面板而生成的跟踪日志。据我从文档中可以看出,Java 控制面板中启用日志记录和跟踪的选项特定于 Web Start 和小程序样式应用程序。当我启动我的桌面 java 应用程序时,没有生成 .trace 文件。

提前致谢。

【问题讨论】:

  • 将标准输出重定向到文件。 stackoverflow.com/questions/2851234/…
  • 控制面板中的日志和跟踪用于 JVM 日志。您需要调查您使用的应用程序是如何记录日志的,并进行相应的配置。
  • 我的应用程序没有使用任何日志记录工具,只有一些输出到标准输出。我需要启用跟踪时应创建的 .trace 文件。这是认证我的应用程序在我的公司网络上运行的要求。未创建 .trace 文件的原因是因为我的应用程序未使用任何日志记录,还是 java 控制面板和 deployment.properties 文件中的跟踪选项只是为使用启动的应用程序捕获跟踪日志的一种方式java 桌面应用程序应该可配置的浏览器插件,用于存储日志框架的工作跟踪日志?
  • 此评论是对 Shankar Shastri 的回复:跟踪文件是否只是标准输出的重定向?在最近的过去,我看到了输出大量 JVM 状态信息的跟踪文件。它看起来像 JVM 引导信息。甚至给出了特定类的文件路径。我的印象是提供该信息的是 java 跟踪工具,但可能是特定应用程序正在使用的日志记录工具。

标签: java logging trace


【解决方案1】:

我不确定您到底在寻找什么,但对于日志记录,您可以使用多种现成的日志记录工具,例如 slf4j 或 log4j,仅举出我使用的 2 个。它们可以很容易地集成到任何应用程序中,无论它是否基于 Web。以下是这些 2 的链接:Log4Jslf4j。此外,您可能会发现 Mgnt 库很有用。它的一个实用程序允许您过滤并显着缩短堆栈跟踪,而不会丢失有意义的信息。但这实际上对于基于 Web 的应用程序是最有效的,这些应用程序会产生非常长的堆栈跟踪,其中包含大量无意义的信息。无论如何,这里是有关 Mgnt 库的文章的链接及其链接及其来源:Mgnt

【讨论】:

  • 我需要为我的应用程序提供跟踪日志,作为获得在特定平台上正常运行的认证的要求之一。从目前收到的 cmets 来看,我认为可能需要 log4j 之类的日志记录工具来创建跟踪日志。我目前没有使用任何日志记录。只是用户通知和一些控制台输出。是否必须使用日志记录才能创建跟踪日志?
  • 记录是您的应用程序需要记录的任何内容。您可以选择根本不登录,但除了最简单的应用程序之外,这不是可接受的做法。一旦决定编写日志,您需要选择要使用的日志记录工具。在我的回答中,我提供了我最熟悉的 2 个。至于追踪 - 请参阅此链接:docs.oracle.com/javase/7/docs/technotes/guides/jweb/jcp/…
  • 我读过那篇文章,它特别提到了 Tracing for Java Plug-in 和 Java Web Start”。没有任何地方提到如何为既不是 Java Web Start 的 Java 应用程序启用跟踪或java小程序。感谢您提供日志库的链接我一直在考虑log4j,但我计划稍后集成它。现在我只需要为我的应用程序所需的认证提供一个.trace文件并且是跳跃有一些简单的东西我错过了为什么即使启用了跟踪也没有创建一个。
  • 引用上述文章“跟踪是一种将 Java 控制台中的任何输出重定向到跟踪文件的工具。”因此,跟踪只是将用于控制台的任何输出移动到文件中。如果你没有输出,那么就没有痕迹......这基本上会把你用 System.out.println() 或 System.err.println() 打印的任何东西放入文件而不是控制台。
【解决方案2】:

对于使用常规虚拟机启动的应用程序,似乎没有与 Java 控制面板中提供的跟踪选项等效的选项。 Java 控制面板中的选项专门用于 Java Web Start 应用程序和 Java Applet。它对通过双击可执行 jar 文件或在命令行键入 java -jar javaapp.jar 启动的 Java 桌面应用程序没有影响。虽然文档指出跟踪是从 java 控制台输出到 .trace 文件,但他们所说的控制台是 Java 控制台,它仅适用于 Web Start 和 Applets。他们说的不仅仅是标准输出和标准错误。虽然标准输出和标准错误都会输出到 Java 控制台,但 Java 控制台还包括 JVM 本身的引导信息,例如 Java 版本、Java 可执行文件的确切路径、代理信息等等。我确信可能有一种方法可以生成等效数据,但它无法通过 Java 控制面板的跟踪和日志选项或部署属性选项(例如 -DDeployment.trace = true)来完成。您可以通过转到 Java 教程并启动他们在教程中链接到的众多 Web 启动应用程序之一来查看我所说的信息。确保转到 Java 控制面板并勾选高级选项卡下的显示控制台选项。当您选择此选项启动 Java Web Start 应用程序时,Java 控制台将打开。当在 Java 控制面板的同一个高级选项卡中选择启用跟踪时,该控制台的输出将转储到 .trace 文件中。如果您还启用了日志记录,则控制台输出似乎以 XML 格式输出到 .log 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多