更新时间:2025-03-24 GMT+08:00
日志输出格式配置示例
devspore-http-log推荐直接输出纯json格式的日志,方便对日志进行解析聚合统计分析。
具体log4j2.xml配置可参考以下配置:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<contextName>ordering</contextName>
<Properties>
<Property name="component">ordering</Property>
<Property name="HTTP_LOG_ACCESS_PATH">/opt/cloud/logs/${component}/http/access</Property>
<Property name="HTTP_LOG_REQUEST_PATH">/opt/cloud/logs/${component}/http/request</Property>
<Property name="HTTP_LOG_METHODLOG_PATH">/opt/cloud/logs/${component}/http/method</Property>
<Property name="HTTP_LOG_PATTERN" value="%msg%n" />
<Property name="ACCESS_FILE_NAME" value="${component}-access"/>
<Property name="REQUEST_FILE_NAME" value="${component}-request"/>
<Property name="METHOD_FILE_NAME" value="${component}-method"/>
<Property name="LOG_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] [%logger{15}] - [%msg]%n"/>
</Properties>
<Appenders>
<!-- Console output -->
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<!--- access log -->
<RollingFile name="ROLLING_HTTP_LOG_ACCCESS_FILE">
<FileName>${HTTP_LOG_ACCESS_PATH}/${ACCESS_FILE_NAME}.log</FileName>
<FilePattern>${HTTP_LOG_ACCESS_PATH}/${ACCESS_FILE_NAME}-%d{yyyy-MM-dd}.%i.zip</FilePattern>
<PatternLayout pattern="${HTTP_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="100MB" />
</Policies>
<DefaultRolloverStrategy max="100">
<Delete basePath="${HTTP_LOG_ACCESS_PATH}" maxDepth="2">
<IfFileName glob="*${ACCESS_FILE_NAME}-*.zip">
<IfLastModified age="7d">
<IfAny>
<IfAccumulatedFileSize exceeds="100MB" />
<IfAccumulatedFileCount exceeds="100" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!--- request log -->
<RollingFile name="ROLLING_HTTP_LOG_REQUEST_FILE">
<FileName>${HTTP_LOG_REQUEST_PATH}/${REQUEST_FILE_NAME}.log</FileName>
<FilePattern>${HTTP_LOG_REQUEST_PATH}/${REQUEST_FILE_NAME}-%d{yyyy-MM-dd}.%i.zip</FilePattern>
<PatternLayout pattern="${HTTP_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="100MB" />
</Policies>
<DefaultRolloverStrategy max="100">
<Delete basePath="${HTTP_LOG_REQUEST_PATH}" maxDepth="2">
<IfFileName glob="*${REQUEST_FILE_NAME}-*.zip">
<IfLastModified age="7d">
<IfAny>
<IfAccumulatedFileSize exceeds="100MB" />
<IfAccumulatedFileCount exceeds="100" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<!--- methodLog -->
<RollingFile name="ROLLING_HTTP_LOG_METHOD_FILE">
<FileName>${HTTP_LOG_METHODLOG_PATH}/${METHOD_FILE_NAME}.log</FileName>
<FilePattern>${HTTP_LOG_METHODLOG_PATH}/${METHOD_FILE_NAME}-%d{yyyy-MM-dd}.%i.zip</FilePattern>
<PatternLayout pattern="${HTTP_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="100MB" />
</Policies>
<DefaultRolloverStrategy max="100">
<Delete basePath="${HTTP_LOG_METHODLOG_PATH}" maxDepth="2">
<IfFileName glob="*${METHOD_FILE_NAME}-*.zip">
<IfLastModified age="7d">
<IfAny>
<IfAccumulatedFileSize exceeds="100MB" />
<IfAccumulatedFileCount exceeds="100" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<!-- access logger config -->
<Logger name="com.huaweicloud.devspore.http.log.DevsporeHttpLogFilter" level="info" additivity="false">
<AppenderRef ref="ROLLING_HTTP_LOG_ACCCESS_FILE"/>
</Logger>
<!-- request logger config -->
<Logger name="com.huaweicloud.devspore.http.log.ClientRequestLogger" level="info" additivity="false">
<AppenderRef ref="ROLLING_HTTP_LOG_REQUEST_FILE"/>
</Logger>
<!-- method logger config -->
<Logger name="com.huaweicloud.devspore.http.log.aspect.MethodLogger" level="info" additivity="false">
<AppenderRef ref="ROLLING_HTTP_LOG_METHOD_FILE"/>
</Logger>
<Root level="info">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
父主题: 使用指南