kui-vault/06.Archive/aimSystems/NSD/aimlog4j2.xml.md

4.4 KiB

for IOBridge_SECS java

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Configuration>
	<CustomLevels>
		<CustomLevel name="RAW_R" intLevel="1001"/>
		<CustomLevel name="RAW_S" intLevel="1002"/>
		<CustomLevel name="SECS_R" intLevel="1011"/>
		<CustomLevel name="SECS" intLevel="1012"/>
		<CustomLevel name="SECS_S" intLevel="1013"/>
		<CustomLevel name="SECS_DATA_R" intLevel="1021"/>
		<CustomLevel name="SECS_DATA" intLevel="1022"/>
		<CustomLevel name="SECS_DATA_S" intLevel="1023"/>
		<CustomLevel name="DRIVER" intLevel="1031"/>
	</CustomLevels>
	<Properties>
	
	</Properties>
	<Appenders>
		<RollingFile name="raw" immediateFlush="true">
			<FileName>${ctx:APP_LOG_ROOT}/${ctx:DEVICEID}/RawByte/${ctx:DEVICEID}_RawByte.log</FileName>
			<FilePattern>${ctx:APP_LOG_ROOT}/${ctx:DEVICEID}/RawByte/${ctx:DAY_PATTERN}/${ctx:FILE_PATTERN}_RawByte_%i.log</FilePattern>
			<PatternLayout pattern="%d{[HH:mm:ss.SSS]}%m%n"/>
			<Policies>
				<!-- size 단위: Byte(default), KB, MB, or GB -->
				<SizeBasedTriggeringPolicy>
					<size>${ctx:MAX_FILE_SIZE}</size>
				</SizeBasedTriggeringPolicy>
				<!-- interval(default 1)이므로 1초 간격으로 rolling 수행 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
			</Policies>
			<LevelRangeFilter minLevel="RAW_R" maxLevel="RAW_S" onMatch="ACCEPT" onMismatch="DENY"/>
			<DefaultRolloverStrategy max="999"/>
		</RollingFile>
		<Async name="AsyncRawAppender">
			<AppenderRef ref="raw"/>
		</Async>
		
		<RollingFile name="secs" immediateFlush="true">
			<FileName>${ctx:APP_LOG_ROOT}/${ctx:DEVICEID}/SECS_Header/${ctx:DEVICEID}_SECS_Header.log</FileName>
			<FilePattern>${ctx:APP_LOG_ROOT}/${ctx:DEVICEID}/SECS_Header/${ctx:DAY_PATTERN}/${ctx:FILE_PATTERN}_SECS_Header_%i.log</FilePattern>
			<PatternLayout pattern="%d{[HH:mm:ss.SSS]}%m%n"/>
			<Policies>
				<!-- size 단위: Byte(default), KB, MB, or GB -->
				<SizeBasedTriggeringPolicy>
					<size>${ctx:MAX_FILE_SIZE}</size>
				</SizeBasedTriggeringPolicy>
				<!-- interval(default 1)이므로 1초 간격으로 rolling 수행 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
			</Policies>
			<LevelRangeFilter minLevel="SECS_R" maxLevel="SECS_S" onMatch="ACCEPT" onMismatch="DENY"/>
			<DefaultRolloverStrategy max="999"/>
		</RollingFile>
		<Async name="AsyncSECSAppender">
			<AppenderRef ref="secs"/>
		</Async>
		
		<RollingFile name="secsdata" immediateFlush="true">
			<FileName>${ctx:APP_LOG_ROOT}/${ctx:DEVICEID}/SECS_Data/${ctx:DEVICEID}_SECS_Data.log</FileName>
			<FilePattern>${ctx:APP_LOG_ROOT}/${ctx:DEVICEID}/SECS_Data/${ctx:DAY_PATTERN}/${ctx:FILE_PATTERN}_SECS_Data_%i.log</FilePattern>
			<PatternLayout pattern="%d{[HH:mm:ss.SSS]}%m%n"/>
			<Policies>
				<!-- size 단위: Byte(default), KB, MB, or GB -->
				<SizeBasedTriggeringPolicy>
					<size>${ctx:MAX_FILE_SIZE}</size>
				</SizeBasedTriggeringPolicy>
				<!-- interval(default 1)이므로 1초 간격으로 rolling 수행 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
			</Policies>
			<LevelRangeFilter minLevel="SECS_DATA_R" maxLevel="SECS_DATA_S" onMatch="ACCEPT" onMismatch="DENY"/>
			<DefaultRolloverStrategy max="999"/>
		</RollingFile>
		<Async name="AsyncSECSDataAppender">
			<AppenderRef ref="secsdata"/>
		</Async>
		
		<RollingFile name="driver" immediateFlush="true">
			<FileName>${ctx:APP_LOG_ROOT}/${ctx:DEVICEID}/Driver/${ctx:DEVICEID}_Driver.log</FileName>
			<FilePattern>${ctx:APP_LOG_ROOT}/${ctx:DEVICEID}/Driver/${ctx:DAY_PATTERN}/${ctx:FILE_PATTERN}_Driver_%i.log</FilePattern>
			<PatternLayout pattern="%d{[HH:mm:ss.SSS]}[%-5p] - %m%n"/>
			<Policies>
				<!-- size 단위: Byte(default), KB, MB, or GB -->
				<SizeBasedTriggeringPolicy>
					<size>${ctx:MAX_FILE_SIZE}</size>
				</SizeBasedTriggeringPolicy>
				<!-- interval(default 1)이므로 1초 간격으로 rolling 수행 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
			</Policies>
			<!-- <LevelRangeFilter minLevel="ERROR" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/> -->
			<DefaultRolloverStrategy max="999"/>
		</RollingFile>
		<Async name="AsyncDriverAppender">
			<AppenderRef ref="driver"/>
		</Async>
	</Appenders>
	<Loggers>
		<Logger Level="ALL" additivity="false" name="kr.co.aim.iobridge.secs.logger">
			<AppenderRef ref="AsyncRawAppender"/>
			<AppenderRef ref="AsyncSECSAppender"/>
			<AppenderRef ref="AsyncSECSDataAppender"/>
			<AppenderRef ref="AsyncDriverAppender"/>
		</Logger>
	</Loggers>
</Configuration>