国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - .net簡單使用Log4net的方法(多個日志配置文件)

.net簡單使用Log4net的方法(多個日志配置文件)

2020-06-04 14:31楚景然 ASP.NET教程

log4net是.net中常用的一個日志記錄工具,下面這篇文章主要給大家介紹了關于.net簡單使用Log4net的方法(多個日志配置文件),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面

前言:

幾乎所有的大型應用都會有自己的用于跟蹤調試的API。因為一旦程序被部署以后,就不太可能再利用專門的調試工具了。然而一個管理員可能需要有一套強大的日志系統來診斷和修復配置上的問題。所以這個時候就需要一個記錄日志的工具。log4net是.Net下一個非常優秀的開源日志記錄組件。log4net記錄日志的功能非常強大。它可以將日志分不同的等級,以不同的格式,輸出到不同的媒介。

那先來介紹一下:

開發工具vs2017

【注意項目名稱不要為log4net,否者在之后配置log4net出錯】

1】NuGet中引用Log4net

.net簡單使用Log4net的方法(多個日志配置文件)

2】添加web配置文件命名為log4new.config并在中寫入以下代碼

.net簡單使用Log4net的方法(多個日志配置文件)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?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.asax中添加代碼

?
1
2
//配置log4
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/Web.config")));

.net簡單使用Log4net的方法(多個日志配置文件)

4】寫一個LogHelper.cs但是注意在這個.cs文件的命名空間寫上[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

注意ConfigFile 后面跟的是配置文件的相對路徑

.net簡單使用Log4net的方法(多個日志配置文件)

LogHelper代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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\n1. 錯誤: >> 操作時間: " + logMessage.OperationTime + " 操作人: " + logMessage.UserName + " \r\n");
   strInfo.Append("2. 類名: " + logMessage.Class + " \r\n");
   strInfo.Append("3. 內容: " + logMessage.Content + "\r\n");
   strInfo.Append("-----------------------------------------------------------------------------------------------------------------------------\r\n");
   return strInfo.ToString();
  }
 }

5】最后可以開始寫日志

可以自己定義一種日志格式【自己寫一個model,定義幾個參數 時間、操作人、類名等等】

.net簡單使用Log4net的方法(多個日志配置文件)

最后根據log4new.config設置的路徑找到日志所在【未定義的話一般在項目的bin/Debug 或者 bin/Release目錄下】 第一個是默認格式日志,第二個是自己定的格式日志【都是string類型,只不過第二個使用\t\n換行,稍微美化一下輸出格式】

<param name="File" value="Log/Debug/"/> 表示在當前文件夾Log/Debug中

.net簡單使用Log4net的方法(多個日志配置文件).net簡單使用Log4net的方法(多個日志配置文件)

.net簡單使用Log4net的方法(多個日志配置文件)

最后附上githup地址

總結:

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.cnblogs.com/1439107348s/p/9927361.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美亚洲视频在线观看 | 国产 日韩 一区 | 一区二区三区视频 | 欧美日韩视频在线 | 亚洲精品久久久久久动漫 | 中文字幕亚洲一区二区三区 | 午夜精品久久久久久久久 | 国产精品免费在线 | 日韩 欧美 精品 | 精品影院| 欧美视频精品在线观看 | 欧美国产精品一区 | 亚洲成av人片在线观看无码 | 欧美成人精品 | 国产成人精品亚洲日本在线观看 | a∨色狠狠一区二区三区 | 中文字幕欧美日韩 | 成人免费大片黄在线播放 | 91在线视频免费 | 精品无人乱码一区二区三区 | 国产成人免费视频网站高清观看视频 | 狠狠操综合网 | 色综合一区二区 | 欧美亚洲一 | 精品毛片 | 美女超碰| 日韩高清一区二区 | 二区在线观看 | 波多野结衣一二三四区 | 欧美视频在线播放 | 成人久久久久久久久 | 成人免费小视频 | 亚洲成人在线播放视频 | 亚洲毛片 | 国产性猛交xxxx免费看久久 | 成人影院av| 亚洲人成网站999久久久综合 | 精品第一页| 国产精品久久久久久久浪潮网站 | 亚洲精品一区二区三区蜜桃久 | 久久久久久久久久久久久大色天下 |