Apache log4net™ configurations 샘플예제
개요
이 문서는 내장된 appenders 에 대한 예제 configurations 을 제공합니다. 이러한 configurations 는 log4net.Config.DOMConfigurator 및 log4net.Repository.Hierarchy.Hierarchy 와 함께 작동하도록 설계되었습니다.
이러한 예제는 appender에 대한 완전한 configurations 이 아닙니다. 각 appender 에 지정할 수 있는 매개변수의 전체 목록과 각 옵션에 대한 자세한 내용은 appender 용 SDK 문서를 참조하세요.
AdoNetAppender
자세한 내용은 SDK 참조 항목( log4net.Appender.AdoNetAppender )을 참조하십시오 . 성능 및 데이터 수정 에 대한 BufferingForwardingAppender 의 참고 사항을 참조하십시오.
AdoNetAppender 의 구성은 대상 데이터베이스에 대해 선택한 공급자에 따라 다릅니다. 여기 몇 가지 예가 있어요.
MS SQL 서버
다음 예에서는 SQL Server 데이터베이스에 메시지를 기록하도록 AdoNetAppender 를 구성하는 방법을 보여줍니다. 이벤트는 100개( BufferSize )의 배치로 기록됩니다. ConnectionType 은 데이터베이스에 연결하는 데 사용할 System.Data.IDbConnection 의 정규화된 형식 이름을 지정합니다.
ConnectionString 은 데이터베이스 공급자에 따라 다릅니다 . CommandText 는 prepared statement 이거나 stored procedure 이며, 이 경우 prepared statement 입니다 . prepared statement 또는 stored procedure 에 대한 각 매개변수는 해당 이름, 데이터베이스 유형 및 매개변수 값을 렌더링하는 레이아웃으로 지정됩니다.
데이터베이스 테이블 정의는 다음과 같습니다.
CREATE TABLE [dbo].[Log] (
[Id] [int ] IDENTITY (1 , 1 ) NOT NULL ,
[Date ] [datetime] NOT NULL ,
[Thread] [varchar ] (255 ) NOT NULL ,
[Level] [varchar ] (50 ) NOT NULL ,
[Logger] [varchar ] (255 ) NOT NULL ,
[Message] [varchar ] (4000 ) NOT NULL ,
[Exception] [varchar ] (2000 ) NULL
)
appender configuration 내용입니다.
<appender name ="AdoNetAppender" type ="log4net.Appender.AdoNetAppender" >
<bufferSize value ="100" />
<connectionType value ="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value ="data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]" />
<commandText value ="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
<parameter >
<parameterName value ="@log_date" />
<dbType value ="DateTime" />
<layout type ="log4net.Layout.RawTimeStampLayout" />
</parameter >
<parameter >
<parameterName value ="@thread" />
<dbType value ="String" />
<size value ="255" />
<layout type ="log4net.Layout.PatternLayout" >
<conversionPattern value ="%thread" />
</layout >
</parameter >
<parameter >
<parameterName value ="@log_level" />
<dbType value ="String" />
<size value ="50" />
<layout type ="log4net.Layout.PatternLayout" >
<conversionPattern value ="%level" />
</layout >
</parameter >
<parameter >
<parameterName value ="@logger" />
<dbType value ="String" />
<size value ="255" />
<layout type ="log4net.Layout.PatternLayout" >
<conversionPattern value ="%logger" />
</layout >
</parameter >
<parameter >
<parameterName value ="@message" />
<dbType value ="String" />
<size value ="4000" />
<layout type ="log4net.Layout.PatternLayout" >
<conversionPattern value ="%message" />
</layout >
</parameter >
<parameter >
<parameterName value ="@exception" />
<dbType value ="String" />
<size value ="2000" />
<layout type ="log4net.Layout.ExceptionLayout" />
</parameter >
</appender >
FileAppender (파일에 추가)
다음 예제에서는 파일에 메시지를 쓰도록 FileAppender를 구성하는 방법을 보여줍니다. 지정된 파일은 log-file.txt입니다. 파일은 로깅 프로세스가 시작될 때마다 덮어쓰지 않고 추가 됩니다.
<appender name ="FileAppender" type ="log4net.Appender.FileAppender" >
<file value ="log-file.txt" />
<appendToFile value ="true" />
<layout type ="log4net.Layout.PatternLayout" >
<conversionPattern value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout >
</appender >
이 예는 환경 변수 TMP 를 사용하여 쓸 파일 이름을 구성하는 방법을 보여줍니다. 파일에 쓰는 데 사용할 인코딩도 지정됩니다.
<appender name ="FileAppender" type ="log4net.Appender.FileAppender" >
<file value ="${TMP}\log-file.txt" />
<appendToFile value ="true" />
<encoding value ="unicodeFFFE" />
<layout type ="log4net.Layout.PatternLayout" >
<conversionPattern value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout >
</appender >
이 예제는 여러 프로세스 ( multiple processes) 가 동일한 파일에 쓸 수 있도록 허용하는 최소 잠금 모델 을 사용하도록 appender 를 구성하는 방법을 보여줍니다.
<appender name ="FileAppender" type ="log4net.Appender.FileAppender" >
<file value ="${TMP}\log-file.txt" />
<appendToFile value ="true" />
<lockingModel type ="log4net.Appender.FileAppender+MinimalLock" />
<layout type ="log4net.Layout.PatternLayout" >
<conversionPattern value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout >
</appender >
이 예제는 "inter process " 잠금 모델을 사용하도록 어펜더를 구성하는 방법을 보여줍니다.
<appender name ="FileAppender" type ="log4net.Appender.FileAppender" >
<file value ="${TMP}\log-file.txt" />
<appendToFile value ="true" />
<lockingModel type ="log4net.Appender.FileAppender+InterProcessLock" />
<layout type ="log4net.Layout.PatternLayout" >
<conversionPattern value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout >
</appender >
참고 사이트
https://logging.apache.org/log4net/release/config-examples.html
Apache log4net – Apache log4net: Config Examples - Apache log4net
Apache log4net™ Config Examples Overview This document presents example configurations for the built-in appenders. These configurations are designed to work with the log4net.Config.DOMConfigurator and the log4net.Repository.Hierarchy.Hierarchy. These exa
logging.apache.org