我在登錄碼頭時遇到了問題。我在文件中寫入日誌。在生成的日誌文件中,應用程序的日誌級別是info,但是我將它設置爲WARN。我有想法,jetty不用過濾就從應用程序寫入日誌,是這樣嗎?如何通過maven項目的LOG_LEVEL過濾碼頭日誌?
我使用Maven和我打包我的應用程序使用命令
sudo mvn package
設置日誌記錄碼頭:
{jetty.base}/modules$ sudo curl -O https://raw.githubusercontent.com/jetty-project/logging-modules/master/log4j-1.2/logging.mod {jetty.base}$ sudo java -jar /opt/jetty/start.jar --add-to-start=logging
文件{jetty.base} /資源/ jetty-logging.properties
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog org.apache.log4j.LogManager.getLogger("org.eclipse.jetty").setLevel(Level.WARN); org.eclipse.jetty.LEVEL=WARN
文件{jetty.base} /resources/log4j.properties
log4j.rootLogger=WARN, file log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
文件{jetty.base} /etc/jetty-logging.xml
<New id="ServerLog" class="java.io.PrintStream"> <Arg> <New class="org.eclipse.jetty.util.RolloverFileOutputStream"> <Arg><Property name="jetty.logs" default="/mnt/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> <Get name="rootLogger"> <Call name="info"><Arg>Redirecting stderr/stdout to file <Ref refid="ServerLogName"/></Arg></Call> </Get> <Call class="java.lang.System" name="setErr"><Arg><Ref refid="ServerLog"/></Arg></Call> <Call class="java.lang.System" name="setOut"><Arg><Ref refid="ServerLog"/></Arg></Call>
在日誌文件中我看到的水平信息和調試
07:13:10.072 [main] INFO 07:14:04.216 [java-sdk-http-connection-reaper] DEBUG o.a.h.i.c.PoolingClientConnectionManager ...