GeoServer를 윈도우에서 콘솔로 띄워 시작할 경우 퍼블리싱 되어 있는 레이어, 스타일 정보와 같은 많은 로그를 출력한다. 서비스에 올라가 있는 레이어가 몇개 안된다면 별다른 문제가 없겠지만 대부분의 운영 환경에서는 많은 양의 레이어가 서비스되고 있을 것이다. 그런데 그 레이어 관련 로그를 하나하나 콘솔창에 찍거나 로그 파일에 저장이 된다면 상당한 양의 로그가 저장이 될 것이다. 특히 WMS의 경우 타일 형식으로 서비스 되기 때문에 하나의 지도 영역을 그리기 위해 타일수 대로 로그가 찍힌다면 엄청난 양의 로그가 생성되는 것이다.

 

이런 문제를 해결하기 위해 간단히 설정 파일을 변경하여 처리해 줄 수 있다. GeoServer는 로그 관리를 위해 Log4j를 사용하는데 다양한 로그 정책을 선택할 수 있도록 설정 파일을 제공하고 이를 사용자는 선택하면 된다. 

GeoServer(2.4.5 버전 기준) 전역 환경설정

 

GeoServer 관리자 페이지의 전역 환경설정에서 로그 정책이 여러개 있는 것을 확인할 수 있는데, 기본 로그 정책은 DEFAULT_LOGGING.properties로 해당 파일을 수정하거나 다른 로그 정책을 선택하여 로그의 양을 줄일 수가 있다. 또는 간단하게 로그를 적게 출력하고 싶다면 PRODUCTION_LOGGING.properties를 선택하면 Error사항이 아니면 로그를 작성하지 않는다.

 

직접 로그 파일을 찾아서 열어 본다면 %GEOSERVER_HOME%\data\logs\DEFAULT_LOGGING.properties 경로에서 파일을 확인할 수 있다. 

## This log4j configuration file needs to stay here, and is used as the default logging setup
## during data_dir upgrades and in case the chosen logging config isn't available.

log4j.rootLogger=WARN, geoserverlogfile, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{dd MMM HH:mm:ss} %p [%c{2}] - %m%n


log4j.appender.geoserverlogfile=org.apache.log4j.RollingFileAppender
# Keep three backup files.
log4j.appender.geoserverlogfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.geoserverlogfile.layout=org.apache.log4j.PatternLayout
log4j.appender.geoserverlogfile.layout.ConversionPattern=%d %p [%c{2}] - %m%n

log4j.category.log4j=FATAL

log4j.category.org.geotools=WARN
log4j.category.org.geotools.factory=WARN
log4j.category.org.geoserver=INFO
log4j.category.org.vfny.geoserver=INFO

log4j.category.org.springframework=WARN

log4j.category.org.geowebcache=INFO
log4j.category.org.geowebcache.seed.TruncateTask=WARN

 

Logging Level을 보면 4번째 라인에 log4j.rootLogger=WARN 로 설정되어 있고 geoserver의 일반적인 상태(로딩, 퍼브리싱 등)와 관련된 로그는 22번째 라인에 있는 log4j.category.org.geoserver=INFO로 되어 있다.

먼저 log4j의 로거 레벨은 여섯단계로 나누어져 있는데 TRACE < DEBUG < INFO < WARN < ERROR < FATAL 순이다.
레벨의 중요도가 낮을 수록 상위 레벨의 로그까지 포함하게 된다.
예를 들어 log4j.rootLogger=WARN의 경우 소스코드에서 WARN, ERROR, FATAL로 설정된 것들만 로그로 남기게 되어 있다.

결론으로 돌아와 log4j.category.org.geoserver=WARN 또는 그 상위 레벨로 변경하면 오류 상황이 아니면 로그가 발생되지 않는다.



AND