更新时间: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>

相关文档