.net Log4net 을 간단하게 사용 하 는 방법(여러 로그 프로필)
거의 모든 대형 애플 리 케 이 션 에는 디 버 깅 을 추적 하 는 API 가 있 습 니 다.프로그램 이 배 치 된 후 에는 전문 적 인 디 버 깅 도 구 를 더 이상 이용 할 수 없 기 때문이다.그러나 관리 자 는 설정 상의 문 제 를 진단 하고 복구 하기 위해 강력 한 로그 시스템 이 필요 할 수도 있 습 니 다.그래서 이 럴 때 로 그 를 기록 하 는 도구 가 필요 합 니 다.log4net 는.Net 의 다음 훌륭 한 오픈 소스 로그 기록 구성 요소 입 니 다.로그 4 net 기록 로그 의 기능 이 매우 강하 다.로 그 를 다른 등급 으로 나 누 어 서로 다른 형식 으로 미디어 에 출력 할 수 있 습 니 다.
그럼 먼저 소개 하 겠 습 니 다.
개발 도구 vs 2017
[항목 이름 이 log4net 이 아 닌 것 을 주의 하 십시오.나중에 log4net 을 설정 하 는 중 오류 가 발생 했 습 니 다.]
1]NuGet 에서 Log4net 패키지 참조
2]웹 프로필 이름 을 log4 new.config 로 추가 하고 다음 코드 를 기록 합 니 다.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.2" />
</configSections>
<!-- log4net-->
<log4net>
<root>
</root>
<logger name="RollingLogFileAppender">
<level value="ALL" />
<appender-ref ref="RollingFileDebug" />
<appender-ref ref="RollingFileInfo" />
<appender-ref ref="RollingFileWarn" />
<appender-ref ref="RollingFileError" />
<appender-ref ref="RollingFileFatal" />
</logger>
<appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender">
<!-- ( value="Log/Debug/") [App_Data] -->
<param name="File" value="Log/Debug/"/>
<!-- -->
<param name="AppendToFile" value="true"/>
<!-- , "-1" -->
<param name="MaxSizeRollBackups" value="10"/>
<!-- -->
<param name="StaticLogFileName" value="false"/>
<!-- , -->
<param name="DatePattern" value="yyyyMMdd".log""/>
<!-- , :Date[ ], [Size], [Composite]-->
<param name="RollingStyle" value="Date"/>
<!-- -->
<layout type="log4net.Layout.PatternLayout">
<!--%newline [%date{HH:mm:ss fff}] -->
<conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" />
<!-- -->
<!--<conversionPattern value="%message"/>-->
</layout>
<lockingmodel type="log4net.appender.fileappender+minimallock" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Debug" />
<param name="LevelMax" value="Debug" />
</filter>
</appender>
<appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log/Info/"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyyMMdd".log""/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" />
</layout>
<lockingmodel type="log4net.appender.fileappender+minimallock" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log/Warn/"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyyMMdd".log""/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" />
</layout>
<lockingmodel type="log4net.appender.fileappender+minimallock" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="RollingFileError" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log/Error/"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyyMMdd".log""/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" />
</layout>
<lockingmodel type="log4net.appender.fileappender+minimallock" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log/Fatal/"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyyMMdd".log""/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" />
</layout>
<lockingmodel type="log4net.appender.fileappender+minimallock" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="FATAL" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
</log4net>
</configuration>
[3]Global.aax 에 코드 추가
// log4
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/Web.config")));
4]LogHelper.cs 를 쓰 되 이.cs 파일 의 네 임 스페이스 에[assembly:log4net.Config.XmlConfigurator(ConfigFile="log4net.config",Watch=true)를 쓰 십시오.]
ConfigFile 뒤에 설정 파일 의 상대 경로 가 있 습 니 다.
LogHelper 코드
public class LogHelper
{
public static readonly ILog Log = LogManager.GetLogger("RollingLogFileAppender");
// log4j 8 log( OFF ALL, 6 ), :OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。
//ALL , 。
//DEBUG , 。
//INFO 。 , ,
//WARN , , 。
//ERROR , 。 , , 。
//FATAL 。 。 , 。
//TRACE designates finer-grained informational events than the DEBUG.Since:1.2.12, , 。
//OFF , 。
// log level , log 。 , WARN, OFF、FATAL、ERROR、WARN 4 log , INFO、DEBUG、TRACE、 ALL log 。Log4j , ERROR、WARN、INFO、DEBUG。
#region DEBUG , 。
public static void debug(string write)
{
Log.Debug(" :" + write);
}
public static void debug(string write, Exception ex)
{
Log.Debug(" :" + write + "。 :" + ex.ToString());
}
#endregion
#region INFO 。 , ,
/// <summary>
/// 1
/// </summary>
/// <param name="write"></param>
public static void Info(string write)
{
Log.Info(" :" + write);
}
public static void Info(string write, Exception ex)
{
Log.Info(" :" + write + "。 :" + ex.ToString());
}
#endregion
#region WARN , , 。, 。
public static void warn(string write)
{
Log.Warn(" :" + write);
}
public static void warn(string write, Exception ex)
{
Log.Warn(" :" + write + "。 :" + ex.ToString());
}
#endregion
#region ERROR , 。 , , 。
public static void error(string write)
{
Log.Error(" :" + write);
}
public static void error(string write, Exception ex)
{
Log.Error(" :" + write + "。 :" + ex.ToString());
}
#endregion
#region FATAL 。 。 , 。
public static void fatal(string write)
{
Log.Fatal(" :" + write);
}
public static void fatal(string write, Exception ex)
{
Log.Fatal(" :" + write + "。 :" + ex.ToString());
}
//#endregion
#endregion
//
public static string logMessage(SysLogMsg logMessage)
{
StringBuilder strInfo = new StringBuilder();
strInfo.Append("\r
1. : >> : " + logMessage.OperationTime + " : " + logMessage.UserName + " \r
");
strInfo.Append("2. : " + logMessage.Class + " \r
");
strInfo.Append("3. : " + logMessage.Content + "\r
");
strInfo.Append("-----------------------------------------------------------------------------------------------------------------------------\r
");
return strInfo.ToString();
}
}
5]마지막 으로 일 지 를 쓸 수 있 습 니 다.로그 형식 을 스스로 정의 할 수 있 습 니 다.
마지막 으로 log 4 new.config 설정 경로 에 따라 로그 가 있 는 곳 을 찾 습 니 다.[정의 되 지 않 으 면 프로젝트 의 bin/Debug 또는 bin/Release 디 렉 터 리 에서]첫 번 째 는 기본 형식 로그 이 고 두 번 째 는 자신 이 정 한 형식 로그 입 니 다.[모두 string 형식 입 니 다.두 번 째 는\t 줄 을 바 꾸 고 출력 형식 을 약간 미화 합 니 다]
현재 폴 더 Log/Debug 에서
마지막 으로 githup 주소 첨부
요약:
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AS를 통한 Module 개발1. ModuleLoader 사용 2. IModuleInfo 사용 ASModuleOne 모듈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.