All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rt-cloud.smart-cloud-starter-log4j2.1.0.6.source-code.log4j2.xml Maven / Gradle / Ivy

The newest version!
<?xml version="1.0" encoding="UTF-8"?>
<!--
    status: 这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出
    monitorInterval: Log4j能够自动检测修改配置文件和重新配置本身, 设置间隔秒数。
    packages:以逗号隔开的包名列表,用于搜索插件,比如自定义filter、appender等。插件仅会加载一次,所以要想修改后生效必须重启项目
-->
<Configuration status="WARN" monitorInterval="600" packages="io.github.smart.cloud.starter.log4j2.plugin">
	<!-- 变量配置 -->
	<Properties>
		<Property name="app_name">${cctx:appName}</Property>
		<Property name="log_path">${cctx:logPath}</Property>
		<!--
			%level 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
			%m 输出代码中指定的消息
			%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
			%thread 输出产生该日志事件的线程名
			%line 代码调用位置
			%method 执行的方法

			sleuth相关参数:
			TraceId为此次调用链共享id;SpanId本应用唯一id;ParentSpanId为上级应用唯一id;X-Span-Export是否是发送给Zipkin
			-->
		<Property name="log_format">[%-5level][%date{MM-dd HH:mm:ss.SSS}][%X{traceId}|%X{spanId}][%thread] (%F:%line)[%method] -> %mm%n</Property>
	</Properties>

	<Appenders>
		<Console name="console" target="SYSTEM_OUT">
			<PatternLayout pattern="${log_format}" />
		</Console>

		<RollingRandomAccessFile immediateFlush="false"
								 name="local_disk_file"
								 fileName="${log_path}/${app_name}.log"
								 filePattern="${log_path}/${app_name}.%d{yyyy-MM-dd-HH}.log.gz">
			<PatternLayout pattern="${log_format}" />
			<Policies>
				<!-- 如果启用此配置,则日志会按文件名生成新压缩文件,
				                即如果filePattern配置的日期格式为 %d{yyyy-MM-dd HH} ,则每小时生成一个压缩文件,
				                如果filePattern配置的日期格式为 %d{yyyy-MM-dd} ,则每天生成一个压缩文件 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
				<!-- 每个日志文件最大512MB -->
				<SizeBasedTriggeringPolicy size="512 MB" />
			</Policies>
		</RollingRandomAccessFile>

		<RollingRandomAccessFile immediateFlush="false"
			name="elk_file"
			fileName="${log_path}/elk/${app_name}.log"
			filePattern="${log_path}/elk/${app_name}.%d{yyyy-MM-dd-HH}.log.gz">
			<!--参考http://logging.apache.org/log4j/2.x/manual/json-template-layout.html-->
			<JsonTemplateLayout eventTemplateUri="classpath:log4j2Template.json" charset="UTF-8"/>
			<Policies>
				<!-- 如果启用此配置,则日志会按文件名生成新压缩文件,
				                即如果filePattern配置的日期格式为 %d{yyyy-MM-dd HH} ,则每小时生成一个压缩文件,
				                如果filePattern配置的日期格式为 %d{yyyy-MM-dd} ,则每天生成一个压缩文件 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
				<!-- 每个日志文件最大10MB -->
				<SizeBasedTriggeringPolicy size="512 MB" />
			</Policies>
		</RollingRandomAccessFile>

		<Async name="async_consle" includeLocation="true">
			<AppenderRef ref="console"/>
			<LinkedTransferQueue/>
		</Async>
		<Async name="async_local_disk_file" includeLocation="true">
			<AppenderRef ref="local_disk_file"/>
			<LinkedTransferQueue/>
		</Async>
		<Async name="async_elk_file" includeLocation="true">
			<AppenderRef ref="elk_file"/>
			<LinkedTransferQueue/>
		</Async>
	</Appenders>

	<Loggers>
		<!--可在配置中心通过“logging.level.root”属性覆盖日志级别-->
		<Root level="info">
			<AppenderRef ref="async_consle" />
			<AppenderRef ref="async_local_disk_file" />
			<AppenderRef ref="async_elk_file" />
		</Root>
	</Loggers>
</Configuration>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy