【发布时间】:2019-12-22 15:58:51
【问题描述】:
我可以配置 Jetty 来记录请求延迟 https://support.lucidworks.com/s/question/0D58000003LRo9YCAT/how-to-log-http-request-latencies-for-solr-in-jetty-logs
<Ref id="Handlers">
<Call name="addHandler">
<Arg>
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
<Set name="requestLog">
<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
<Set name="filename">
logs/request.yyyy_mm_dd.log
</Set>
<Set name="filenameDateFormat">yyyy_MM_dd</Set>
<Set name="retainDays">90</Set>
<Set name="append">true</Set>
<Set name="extended">false</Set>
<Set name="logCookies">false</Set>
<Set name="LogTimeZone">UTC</Set>
<Set name="logLatency">true</Set>
</New>
</Set>
</New>
</Arg>
</Call>
</Ref>
但是,这会转到一个单独的日志文件, 并且不使用 log4j, 所以应用程序洞察力 log4j 附加程序不会选择它。 (见-Solr to Application Insights)
如何让 log4j 记录码头请求延迟?
另外,我看到 logback 已经内置了对它自己的 RequestLogImpl 的支持 https://logback.qos.ch/access.html
应用洞察支持 logback https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-trace-logs
<Ref id="Handlers">
<Call name="addHandler">
<Arg>
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
<Set name="requestLog">
<New id="requestLogImpl" class="ch.qos.logback.access.jetty.RequestLogImpl">
</New>
</Set>
</New>
</Arg>
</Call>
</Ref>
服务器\lib\ext\logback-access-1.2.3.jar
服务器\lib\ext\logback-core-1.2.3.jar
但是,我似乎无法通过 logback 将任何请求记录到文件中。 不确定它是否选择了 logback-access.xml 配置,尝试提供文件路径,使用默认值,但没有运气。
server\etc\logback-access.xml(与 jetty.xml 相同的位置)
并尝试指定相对的、完全限定的日志文件位置路径,但没有一个有效。
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- always a good activate OnConsoleStatusListener -->
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>C:\logcallback\access.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>C:\logcallback\access.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>combined</pattern>
</encoder>
</appender>
<logger name="org.eclipse.jetty.server.RequestLog" level="DEBUG" additivity="false">
<appender-ref ref="FILE" />
</logger>
<root level="DEBUG">
<appender-ref ref="FILE"/>
</root>
</configuration>
那么如何让 Solr 使用 log4j 或 logback 将 Jetty 请求延迟指标记录到应用程序洞察中?
【问题讨论】:
标签: solr log4j jetty logback azure-application-insights