导出Tomcat Catalina登录到外部服务器

问题描述 投票:0回答:3

我使用Tomcat 7.x作为我的Web服务器,我使用java.util.logging和JULI进行日志记录。此Tomcat服务器托管一个运行Ubuntu的Amazon EC2实例。

问题是每当我希望看到日志时(在catalina.log文件中)我经历了一个非常耗时的复制,chowing然后将文件下载到本地机器的过程,然后才能看到它们。 (我可以使用像nano或vi这样的实用程序,但它们没有多大帮助)

我的问题我可以自动将日志导出到某个外部服务器并立即查看。有些东西类似于Android中的ACRA报告的Bugsense。

java android tomcat logging
3个回答
2
投票

您可以创建一个在Tomcat中运行的servlet来读取日志并在Web浏览器中显示它们。或者如果文件很大,请将其压缩并允许您下载。

使用环境变量catalina.base确定基目录,然后收集logs / catalina.log。

[更新]

最好的方法取决于你的背景。如果您愿意做一个基本的,没有多余的servlet,请从the simplest design that could possibly work开始,例如:

class LogServlet extends HttpServlet
{
   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
   {
      File logFile = new File(System.getProperty("catalina.base"), "logs/catalina.log");
      String contents = FileUtils.readFileToString(logFile);
      PrintWriter out = new PrintWriter(resp.getOutputStream());
      out.println(contents);
   }
}

我使用commons-io来简化日志文件的读取,但除此之外它只是Java servlet框架。


0
投票

rsync然后定期在您想要的服务器上使用cron作业或使用像collectd这样的工具。


0
投票

您可以使用logstash或流利的流式传输日志并加载到您喜欢的目标中,比如Elastic Search。您可以使用Kibana或Graylog等可视化工具可视化或搜索elasticsearch中的日志

© www.soinside.com 2019 - 2024. All rights reserved.