.net Log4net 을 간단하게 사용 하 는 방법(여러 로그 프로필)

12834 단어 .netLog4net프로필
선언:
거의 모든 대형 애플 리 케 이 션 에는 디 버 깅 을 추적 하 는 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&quot;.log&quot;"/>
  <!--         ,   :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&quot;.log&quot;"/>
  <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&quot;.log&quot;"/>
  <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&quot;.log&quot;"/>
  <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&quot;.log&quot;"/>
  <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 주소 첨부
요약:
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기