[Tools] Log4Net
들어는 보셨을 Log4Net 을 소개해 드립니다.
Web 에서 간단하게 Log 를 쌓을 때 사용하던 녀석입니다.
이번 프로젝트는 WinForm 인데 Log 기능을 넣어달라고 하여 이 녀석을 추가해주려고 합니다.
일단은 파일로만 생성해 주렵니다.
공식웹사이트는 http://logging.apache.org/log4net 이며
GitHub Site 는 https://github.com/apache/logging-log4net/ 입니다.
Project 를 여시고요.
NuGet Manager Console 에서
Install-Package log4net
이렇게 입력하시면 설치가 간단히 끝납니다.
그 다음은 app.config 또는 Web.config 파일에 Log4Net 을 사용하겠다고 알려주고요.
Log 에 대한 설정 사항을 입력해 주면 됩니다.
별도의 Log4Net.config 파일에 정의해 주어도 되겠습니다.
Log4Net.config 에서 설정을 관리하겠다면 첨부되어 있는 Logger.cs 파일의 initialize() 함수에서 처럼 로그를 관리하는 class 에 아래 구문을 추가해주시고요.
XmlConfigurator.ConfigureAndWatch(new FileInfo(logFilePath));
app.config 나 web.config 을 사용하시겠다면
assemblyinfo.cs 이나 program.cs 파일에 아래 구문을 입력해 주셔요. ^^
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
다음 설정은 App.Config 에 적어준 사항을 블로그에 맞게 약간 수정해서 기록합니다.
다른 사항들도 빼곡하게 적어 놓았는데 그 사항들을 여러분들이 사용하실때 주석을 풀어 사용하시면 되리라 생각하고 일단은 파일에 Log 를 쌓는 부분만 사용할 수 있게 주석을 풀어 놓았습니다.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="DLL" />
</assemblyBinding>
</runtime>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Logs/%date{yyyy-MM-dd}_log4net.log"/>
<datePattern value="yyyy-MM-dd"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="true" />
<maxSizeRollBackups value="60" />
<maximumFileSize value="15MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Data Source=DataSourceName;Initial Catalog=DatabaseName;integrated security=True" />
<commandText value="INSERT INTO SADT_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>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %m - %c -%n" />
</layout>
</appender>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="AspNetTraceAppender" type="log4net.Appender.AspNetTraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
<!--
<appender-ref ref="AdoNetAppender" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="OutputDebugStringAppender" />
<appender-ref ref="TraceAppender" />
<appender-ref ref="AspNetTraceAppender" />
-->
</root>
</log4net>
</configuration>
내용은 설명을 달아 놓아야 할까 싶을 정도로 간단합니다.
제가 굵게 표시한 글자들만 보셔도 아하~~ 하실거라 생각합니다.
설명을 안할까 생각중인데... 헤헤헤
에헤~~ 한번 찬찬히 봐 보셔요. ^^
설명 필요없을거예요.
행복한 고수되셔요. ^^
woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\