Jetty 8 日志详细级别
Jetty 8 Logging Verbosity Level
我正在尝试将 Jetty 服务器的详细级别从信息更改为调试。
这是当前设置的 jetty-logging.xml
文件:
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<New id="ServerLog" class="java.io.PrintStream">
<Arg>
<New class="org.eclipse.jetty.util.RolloverFileOutputStream">
<Arg><Property name="jetty.logs" default="./logs"/>/yyyy_mm_dd.stderrout.log</Arg>
<Arg type="boolean">false</Arg>
<Arg type="int">90</Arg>
<Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
<Get id="ServerLogName" name="datedFilename"/>
</New>
</Arg>
</New>
<!--
<Call class="org.eclipse.jetty.util.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call> -->
<Call class="org.eclipse.jetty.util.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>
<Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>
<Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call>
</Configure>
如何做到?
Jetty 8 是日志控制的过渡期。
直到发布周期的很晚才成为可能。
文件 etc/jetty-logging.xml
与日志层完全无关,它只是一种捕获日志层输出并将其重定向到文件的便利技术。
Jetty was started in 1995, and its logging layer predates all other java logging libraries and techniques by at least 5 years!
要控制日志记录层向 STDERR 发送的方式/内容,您需要操纵该层,即 StdErrLog
实现。
这种类型的操作通过系统属性部分可用(在 Jetty 8 中)。
尝试在启动 Jetty 的 Java VM 上使用 -Dorg.eclipse.jetty.LEVEL=DEBUG
系统 属性。
如果您发现日志记录级别没有变化,那么您的 Jetty 太旧了,无法使用该功能。您需要升级或尝试将 Jetty 配置为使用 Slf4jLog
而不是 StdErrLog
,然后只需使用 slf4j
技术配置记录所有内容(确保禁用 etc/jetty-logging.xml
如果你使用 slf4j
! 否则你将度过糟糕的一周)
我正在尝试将 Jetty 服务器的详细级别从信息更改为调试。
这是当前设置的 jetty-logging.xml
文件:
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<New id="ServerLog" class="java.io.PrintStream">
<Arg>
<New class="org.eclipse.jetty.util.RolloverFileOutputStream">
<Arg><Property name="jetty.logs" default="./logs"/>/yyyy_mm_dd.stderrout.log</Arg>
<Arg type="boolean">false</Arg>
<Arg type="int">90</Arg>
<Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
<Get id="ServerLogName" name="datedFilename"/>
</New>
</Arg>
</New>
<!--
<Call class="org.eclipse.jetty.util.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call> -->
<Call class="org.eclipse.jetty.util.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>
<Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>
<Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call>
</Configure>
如何做到?
Jetty 8 是日志控制的过渡期。
直到发布周期的很晚才成为可能。
文件 etc/jetty-logging.xml
与日志层完全无关,它只是一种捕获日志层输出并将其重定向到文件的便利技术。
Jetty was started in 1995, and its logging layer predates all other java logging libraries and techniques by at least 5 years!
要控制日志记录层向 STDERR 发送的方式/内容,您需要操纵该层,即 StdErrLog
实现。
这种类型的操作通过系统属性部分可用(在 Jetty 8 中)。
尝试在启动 Jetty 的 Java VM 上使用 -Dorg.eclipse.jetty.LEVEL=DEBUG
系统 属性。
如果您发现日志记录级别没有变化,那么您的 Jetty 太旧了,无法使用该功能。您需要升级或尝试将 Jetty 配置为使用 Slf4jLog
而不是 StdErrLog
,然后只需使用 slf4j
技术配置记录所有内容(确保禁用 etc/jetty-logging.xml
如果你使用 slf4j
! 否则你将度过糟糕的一周)