是否将Jetty配置为执行控制台捕获并向Jetty.base之外的目录请求日志



查看文档,为控制台捕获和请求日志指定的所有日志记录路径都是相对于jetty.base的,通常在$jetty.base/logs中。这对很多目的来说都没问题,但我真的希望日志进入/var/logs/jetty,就像许多其他进程一样。我曾尝试在控制台捕获中将其设置为/var/log/jetty,但这只是试图将日志文件保存在$jetty.base/var/log/jetty中,这不是我所需要的。

有办法做到这一点吗?我正在寻找保存日志的最简单的方法。这是我的Jetty安装完全投入生产之前最不需要做的事情。总的来说,一切都很棒。以上都是在Ubuntu上最新发布的Jetty9。

不使用console-capture启动。

您的要求已经超出了console-capture的有限范围。

你会想要一个正式的日志框架,选择一个,比如"logback";(Jetty开发人员建议(,或者java.util.logging,或者log4j。

使用其中一个logging-*模块来设置Jetty的服务器类路径,以便开始使用该日志库。

现在配置日志库(例如:如果您使用"logback",则文件${jetty.base}/resources/logback.xml就是您配置的(

最后,将您的访问日志配置为使用slf4j。

Boom,你所有的日志记录现在都进入了你选择的日志记录库,它的配置可以用来以任何你想要的方式对日志进行切片/骰子/滚动/过滤等。

您可以将其拆分为不同的日志输出文件,将它们组合为一个,并根据不同的规则(大小、行数、持续时间、时间等(滚动。

在这方面确实取得了一些进展。出于某种原因,控制台重定向正确地采用了绝对路径,而请求记录器没有。为此,我使我的配置相对:../../../var/log/jetty这似乎是一种笨拙的方法,但它似乎确实有效。我在创业时仍然会失败,但奇怪的是,它运行得很好,我没有看到例外,所以我现在需要弄清楚。

最新更新