【问题标题】:Java logging - How to export jar error/print messages to an external log file stored on Unix serverJava 日志记录 - 如何将 jar 错误/打印消息导出到存储在 Unix 服务器上的外部日志文件
【发布时间】:2013-11-07 13:54:38
【问题描述】:

我创建了在 Windows 上运行的 Java 应用程序 (GUI),它通过 SSH 与在一台 Unix 服务器上配置的 SQL DB 进行交互,在我的应用程序中,我有几个“打印”消息作为调试信息,以帮助分析程序功能以防出现问题(例如. 跟踪用户活动,跟踪应用于数据库的更改...等),我需要创建一个日志文件以存储在该 Unix 服务器上以记录所有调试信息和任何遇到的错误消息。

日志文件应具有以下规格:

  • 命名:log_(上次修改文件).log
  • 位置:存储在 /var/tmp 下
  • 大小:最大大小为 10 MB,之后创建新文件,旧文件重命名为 .log.old
  • 文件在应用退出时关闭,如果大小仍小于 10 MB,则在应用启动时重新打开同一个文件,否则要创建/打开新文件。

有什么想法吗?请帮忙

提前致谢。

【问题讨论】:

    标签: java unix logging


    【解决方案1】:

    选择一个可用的日志框架,它对您请求的功能具有开箱即用的支持:http://en.wikipedia.org/wiki/Java_logging_framework

    但是,这将确保您在运行应用程序的机器上有一个日志,因此根据您的描述,这将是您的 windows 框。要在 *nix 服务器上创建日志,我想您可以将应用程序分成两部分:

    • 在 Windows 上运行的 GUI,向控制器发送命令
    • 在 *nix 上运行的“后端控制器”,充当数据库和 GUI 之间的桥梁。它从 GUI 接收命令、查询数据库并记录操作

    编辑:

    看起来应用程序的拆分可以通过类似的方法绕过,但需要 log4j 的一点帮助:

    【讨论】:

    • 感谢 Grove,非常感谢...我想我还有很多工作要做!
    • 没问题,很高兴我能帮上忙
    【解决方案2】:

    如果您有远程服务器的登录详细信息,那么您可以将 log4j 配置为在那里写入远程 syslog 文件。见http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SyslogAppender.html

    【讨论】:

    • @user2459413 如果您找到有用的答案,您可以通过单击左侧的“向上箭头”来“感谢”发帖者。这也将帮助其他有类似问题的人识别有价值的信息
    • @Grove,我当然会这样做,但投票需要 15 个我暂时没有的声誉,因为我不知何故是一个新用户
    猜你喜欢
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2015-09-08
    • 1970-01-01
    • 2012-10-24
    相关资源
    最近更新 更多