Log4Net的WebApplication使用

一、Log4Net的WebApplication使用

?1、首先使用nuget 添加log4Net 到WebApplication項目中

log4j每個符號的具體含義:%d %5p %c{1}:%L - %m%n

log4j.properties

# %m 輸出代碼中指定的消息
# %p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
# %r 輸出自應用啟動到輸出該log信息耗費的毫秒數
# %c 輸出所屬的類目,通常就是所在類的全名
# %t 輸出產生該日志事件的線程名
# %n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n”
# %d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
# %l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

#日志文件 每日
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=F:/mylog.txt
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#%時間 [%線程] %log級別 %完整類名 - %消息 %換行
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

2、在WebApplication項目的App.config中添加下面內容(只要是設置日志的添加類型,路徑等)

<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\Log.txt" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="2MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-15p %d [%c] %m%n" />
</layout>
</appender>

<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">//控制臺輸出

<layout type="log4net.Layout.PatternLayout,log4net">

<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />

</layout>

</appender>

<root>
<level value="all" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>

3、在WebApplication項目的Properties中的AssemblyInfo.cs中添加下面內容

[assembly: log4net.Config.DOMConfigurator(Watch = true)](不建議使用,已經過時了)
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]

4、在MVC 項目則是在 ?Global.asax.cs文件中添加下面內容

public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
log4net.Config.XmlConfigurator.Config();//處理log4日志
}
}

4、在WinForm項目啟動項項目中使用

static class Program
{
public static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary>
/// 應用程序的主入口點。
/// </summary>
[STAThread]
static void Main()
{
//捕獲未處理異常
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
LOG.Error(e.Exception);
//throw new Exception("線程未知異常", e.Exception);
MessageBox.Show(e.Exception.Message, "線程異常", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = e.ExceptionObject as Exception;
LOG.Error(ex);
MessageBox.Show(ex.Message, "應用程序異常", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}

?1、首先使用nuget 添加log4Net 到WinForm項目中

log4j每個符號的具體含義:%d %5p %c{1}:%L - %m%n

log4j.properties

# %m 輸出代碼中指定的消息
# %p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
# %r 輸出自應用啟動到輸出該log信息耗費的毫秒數
# %c 輸出所屬的類目,通常就是所在類的全名
# %t 輸出產生該日志事件的線程名
# %n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n”
# %d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
# %l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

#日志文件 每日
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=F:/mylog.txt
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#%時間 [%線程] %log級別 %完整類名 - %消息 %換行
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

2、在WinForm項目的App.config中添加下面內容(只要是設置日志的添加類型,路徑等)

<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\Log.txt" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="2MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-15p %d [%c] %m%n" />
</layout>
</appender>
<root>
<level value="all" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>

3、在WinForm項目的Properties中的AssemblyInfo.cs中添加下面內容

[assembly: log4net.Config.DOMConfigurator(Watch = true)](不建議使用,已經過時了)
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]

4、在WinForm項目啟動項項目中使用

static class Program
{
public static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary>
/// 應用程序的主入口點。
/// </summary>

class Program
{
static log4net.ILog Log = log4net.LogManager.GetLogger(typeof(Program));
static void Main(string[] args)
{
Log.Info("111111111111111111111111");
Log.Warn("111111111111111111111111");
Log.Error("111111111111111111111111");
}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284950.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284950.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284950.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言試題191之實現strcat函數功能

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 實現st…

eclipse啟動tomcat無法訪問

癥狀&#xff1a; tomcat在eclipse里面能正常啟動&#xff0c;而在瀏覽器中訪問http://localhost:8080/不能訪問&#xff0c;且報404錯誤。同時其他項目頁面也不能訪問。 關閉eclipse里面的tomcat&#xff0c;在tomcat安裝目錄下雙擊startup.bat手動啟動tomcat服務器。訪問htt:…

[轉]IntelliJ IDEA 2020.1 正式發布,15 項重大特性、官方支持中文了!

頭圖&作者 | YourBatman&#xff0c;CSDN博客專家 責編 | 唐小引 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 前言 千呼萬喚始出來&#xff01;自從官方在 2020-01-20 發布了其 2020 年的 Roadmap 后&#xff0c;我便持續關注著、期待著 JetBrains Intell…

【ArcGIS遇上Python】ArcGIS批量為多個矢量圖層添加一個或多個字段(Add Field)案例實現

多個人在利用ArcGIS做數字化之后,需要批量為多個圖層添加一個或者多個相同的字段,挨個手動添加字段顯然不可取。ArcGIS Python提供了快速高效的批量添加字段的解決方案。本文以土地利用數據(Landuse1和Landuse2)為例,采用簡單的Python代碼實現了文中兩個矢量圖層批量添加字…

可下載!Vue3+.NET6實戰系列:通用管理后臺

.NET Framework停更3年&#xff0c;4月份還又停止了3個版本支持&#xff0c;居然還有人沒怎么接觸.NET跨平臺&#xff01;真的該好好學下.NET6了&#xff0c;已經是不得不學了&#xff01;好好看下這套《Vue3.NET6前后端分離電商實戰》免費教程&#xff0c;完整的源碼視頻課件全…

C語言試題192之實現strchr函數功能

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 實現st…

簡單團隊-爬取豆瓣電影TOP250-需求分析

1.實現登錄界面 2.搜集相關電影網址 3..按照一定條件爬取電影&#xff0c;實現相關代碼部分 項目步驟&#xff1a; 分析豆瓣電影TOP250的url規則, 編寫模塊獲取相關url分析html中有關"排名,分數,名字,簡介,導演,演員,前10條影評信息,鏈接信息"的標簽編寫將"搜集…

一個想法:成立草根技術聯盟對開發人員進行技術定級解決企業員工招聘難問題!...

背景&#xff1a; 吃飯前&#xff0c;想起了<甄嬛傳>中皇弟嘆息的一句&#xff1a;千軍易得&#xff0c;良將難尋&#xff01; 又逢CTO群里有友人讓我幫忙評估其公司的項目及技術&#xff0c;一番review code&#xff0c;估計要寫那代碼的人要落崗了~ 不由想起&#xff0…

對軟件工程這門課的收獲與總結

轉眼間八周已經過去&#xff0c;《現代軟件工程》這門課程也在這周結束了。在宋老師的教導下&#xff0c;以及在個人項目以及團隊項目的參與中我確實收獲了許多。我覺得我有必要將這八周所獲得的經驗也好&#xff0c;教訓也好都記錄下來&#xff0c;相信這也會對未來的自己有所…

[轉]C++二進制完成加減乘除

首先介紹計算機的二進制碼 二進制常用的有原碼&#xff0c;反碼和補碼&#xff0c;他們都是由最左邊的一個符號位和右邊的數值位構成。在計算機中為了更低成本的計算&#xff0c;數據都是用補碼來存儲和運算的。 原碼 最高位表示符號位&#xff08;0代表正數&#xff0c;1代…

WGS84(GPS)、火星坐標系(GCJ02)、百度地圖(BD09)坐標系轉換案例教程(附轉換工具下載)

在做基于百度地圖、高德地圖等電子地圖做為地圖服務的二次開發時,通常需要將具有WGS84等坐標的矢量數據(如行政區劃、地名、河流、道路等GIS地理空間數據)添加到地圖上面,然而,在線地圖大多使用的是火星坐標系,需要事先將矢量數據轉為火星坐標系。本文以案例的形式,講述…

.NET 6 AssemblyLoadContext DLL 庫 熱插拔邏輯實現

曾經也實現過.Net Framework 基于AppDomain 的 dll庫熱插拔&#xff0c;經歷了版本的迭代&#xff0c;.Net Core 不支持 AppDomain&#xff0c;之前也搞過.Net Core 3.1 版本的&#xff0c;現在搞一下子.NET 6.0的。熱插拔運用的場景主要運用到宿主與插件這個場景或者動態任務的…

C語言試題193之實現strcmp函數功能

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 實現st…

淺談Java多線程同步機制之同步塊(方法)——synchronized

在多線程訪問的時候&#xff0c;同一時刻只能有一個線程能夠用 synchronized 修飾的方法或者代碼塊&#xff0c;解決了資源共享。下面代碼示意三個窗口購5張火車票&#xff1a; 1 package com.jikexueyuan.thread;2 /*3 * 未使用synchronized&#xff0c;存在并發4 */5 class…

[轉]Webpack5(從入門到精通)

這里寫目錄標題 1、webpack 初體驗 全局安裝webpack2.打包樣式資源 創建webpack.config.js文件&#xff08;配置文件&#xff09;3.打包html資源 webpack.config.js文件&#xff08;配置文件&#xff09;4.打包圖片資源 webpack.config.js文件&#xff08;配置文件&#xff09;…

mybatis由淺入深day01_5mybatis開發dao的方法(5.1SqlSession使用范圍_5.2原始dao開發方法)...

5 mybatis開發dao的方法 5.1 SqlSession使用范圍 5.1.1 SqlSessionFactoryBuilder 通過SqlSessionFactoryBuilder創建會話工廠SqlSessionFactory 將SqlSessionFactoryBuilder當成一個工具類使用即可&#xff0c;不需要使用單例管理SqlSessionFactoryBuilder。 在需要創建SqlSes…

做?個?德地圖的 iOS / Android MAUI 控件(上)

點擊上方藍字關注我們&#xff08;本文閱讀時間&#xff1a;10分鐘)Microsoft Build 2022 ?會上正式發布了 .NET MAUI , 對于 .NET 開發者可以? C# 完成跨平臺的前端應?開發。對?起 MAUI 的前身 Xamarin , MAUI 除了可以?傳統的原?開發模式外&#xff0c;還?持了 Blazor…

易康eCognition Developer 9.01安裝教程(附eCognition下載地址及中文教程)

eCognition是由德國Definiens Imaging公司2009年推出的智能化影像分析軟件,2010年被美國Trimble公司收購。eCognition是目前所有商用遙感軟件中第一個基于目標信息的遙感信息提取軟件,它采用決策專家系統支持的模糊分類算法,突破了傳統商業遙感軟件單純基于光譜信息進行影像…

[改善Java代碼]不要覆寫靜態方法

建議33&#xff1a; 不要覆寫靜態方法 我們知道在Java中可以通過覆寫&#xff08;Override&#xff09;來增強或減弱父類的方法和行為&#xff0c;但覆寫是針對非靜態方法&#xff08;也叫做實例方法&#xff0c;只有生成實例才能調用的方法&#xff09;的&#xff0c;不能針對…

C語言試題194之實現strcpy函數功能

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 實現st…