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