log4j2에서 Async Logger 및 Async Appender 스레드 수를 어떻게 설정합니까? 그것은 기본적으로 하나의 스레드를 사용하고 있습니까?log4j2 Async Logger 및 Async Appender 스레드 수 설정
100,000 레코드의 배치에 대해 실행 해 보았습니다. system.out.print를 사용하여 표시된 마지막 로그 명령문 시간 및 종료 타임 스탬프의 차이가 표시되지 않습니다. 비동기 로깅을 어떻게 증명할 수 있습니까?
<RollingFile name="APP.ALERT" fileName="C:\Users\sbasheer\Downloads\abc\Alert.log"
filePattern="C:\Users\sbasheer\Downloads\abc\Alert%d{MM-dd-yyyy}-%i.log" immediateFlush="true" append="true">
<PatternLayout>
<Pattern>%d %p %class{1.} [%t] %location %m %ex%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="25 MB"/>
</Policies>
<DefaultRolloverStrategy max="50"/>
</RollingFile>
<AsyncLogger name="com.abc.asyncsample" level="trace" includeLocation="true" additivity="true">
<AppenderRef ref="APP.ALERT" level="error" />
</AsyncLogger>
감사합니다. Remko. 그래서 내 응용 프로그램에서 30 스레드가 있으면 비 블록 데이터 구조에서 읽기 AsyncLoggerConfig에 대한 하나의 스레드가있을 것입니다? 로깅을위한 백그라운드 스레드 수를 늘릴 수있는 옵션이 있습니까? 아니면 하나의 단일 스레드가 충분히 확장되어 있습니까? – Sibish
예, 대기열에서 읽는 스레드는 하나뿐입니다. 앱은 원하는만큼의 스레드를 가질 수 있습니다. 아니요, 백그라운드 스레드 수를 늘릴 수있는 옵션이 없습니다. (단일 스레드는 IO 디바이스의 잠금을 위해 다른 스레드와 경쟁 할 필요가 없으므로 확장 성이 좋습니다.) –