從網(wǎng)上查的一些方法,自己也使用了察皇,記錄下來(lái)以后可能還會(huì)用到。
MVC5下使用log4net.dll
第一步:在項(xiàng)目中添加對(duì)log4net.dll的引用(通過(guò)NuGet可以直接安裝)
第二步:Global.asax下添加方法
?? protected void Application_Error(Object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? Exception objExp = HttpContext.Current.Server.GetLastError();
? ? ? ? ? ? LogHelper.WriteLog("\r\n客戶機(jī)IP:" + Request.UserHostAddress
? ? ? ? ? ? ? ? + "\r\n錯(cuò)誤地址:" + Request.Url
? ? ? ? ? ? ? ? + "\r\n異常信息:" + Server.GetLastError().Message, objExp);
? ? ? ? }
第三步:添加配置文件(修改配置文件)暴备,我在這里是添加配置文件log4net.config
配置內(nèi)容網(wǎng)上有很多围小,直接復(fù)制即可使用,路徑和日志級(jí)別可以自定義修改
當(dāng)前使用的配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
? <configSections>
? ? <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
? </configSections>
? <log4net>
? ? <logger name="logerror">
? ? ? <level value="ERROR" />
? ? ? <appender-ref ref="ErrorAppender" />
? ? </logger>
? ? <logger name="loginfo">
? ? ? <level value="INFO" />
? ? ? <appender-ref ref="InfoAppender" />
? ? </logger>
? ? <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
? ? ? <!--設(shè)置日志存儲(chǔ)路徑-->
? ? ? <param name="File" value="Log//LogError//" />
? ? ? <!--是否追加到文件-->
? ? ? <param name="AppendToFile" value="true" />
? ? ? <!--最多產(chǎn)生的日志文件數(shù)酣衷,超過(guò)則只保留最新的n個(gè)交惯。設(shè)定值value="-1"為不限文件數(shù)-->
? ? ? <param name="MaxSizeRollBackups" value="100" />
? ? ? <param name="MaxFileSize" value="1024" />
? ? ? <!--是否只寫(xiě)到一個(gè)文件中-->
? ? ? <param name="StaticLogFileName" value="false" />
? ? ? <!--這是按日期產(chǎn)生文件夾,并在文件名前也加上日期-->
? ? ? <param name="DatePattern" value="yyyyMMdd/yyyyMMdd".log""/>
? ? ? <!--按照何種方式產(chǎn)生多個(gè)日志文件(日期[Date],文件大小[Size],混合[Composite])-->
? ? ? <param name="RollingStyle" value="Date" />
? ? ? <layout type="log4net.Layout.PatternLayout">
? ? ? ? <param name="ConversionPattern" value="%n異常時(shí)間:%d [%t] %n異常級(jí)別:%-5p %n異常位置:[%thread] (%file:%line) %n消息描述:%message%n異常:%exception%n%n " />
? ? ? </layout>
? ? </appender>
? ? <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
? ? ? <!--設(shè)置日志存儲(chǔ)路徑-->
? ? ? <param name="File" value="Log//LogInfo//" />
? ? ? <!--是否追加到文件-->
? ? ? <param name="AppendToFile" value="true" />
? ? ? <!--最多產(chǎn)生的日志文件數(shù)穿仪,超過(guò)則只保留最新的n個(gè)席爽。設(shè)定值value="-1"為不限文件數(shù)-->
? ? ? <param name="MaxSizeRollBackups" value="100" />
? ? ? <param name="MaxFileSize" value="1024" />
? ? ? <!--是否只寫(xiě)到一個(gè)文件中-->
? ? ? <param name="StaticLogFileName" value="false" />
? ? ? <!--這是按日期產(chǎn)生文件夾,并在文件名前也加上日期-->
? ? ? <param name="DatePattern" value="yyyyMM/dd".log"" />
? ? ? <!--按照何種方式產(chǎn)生多個(gè)日志文件(日期[Date],文件大小[Size],混合[Composite])-->
? ? ? <param name="RollingStyle" value="Date" />
? ? ? <layout type="log4net.Layout.PatternLayout">
? ? ? ? <param name="ConversionPattern" value="%n日志時(shí)間:%d [%t] %n日志級(jí)別:%-5p %n消息描述:%c [%x] %n%m %n " />
? ? ? </layout>
? ? </appender>
? </log4net>
</configuration>
第四步:AssemblyInfo.cs 中添加? [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
(一定要添加啊片,配置名要一致)
第五步只锻,代碼實(shí)現(xiàn)
LogHelper.cs
/// <summary>
? ? /// LogHelper的摘要說(shuō)明。?
? ? /// </summary>?
? ? public class LogHelper
? ? {
? ? ? ? private LogHelper()
? ? ? ? {
? ? ? ? }
? ? ? ? public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");? //選擇<logger name="loginfo">的配置
? ? ? ? public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");? //選擇<logger name="logerror">的配置
? ? ? ? /// <summary>
? ? ? ? /// 默認(rèn)配置紫谷。按配置文件
? ? ? ? /// </summary>
? ? ? ? public static void SetConfig()
? ? ? ? {
? ? ? ? ? ? log4net.Config.XmlConfigurator.Configure();
? ? ? ? }
? ? ? ? /// <summary>
? ? ? ? /// 手動(dòng)設(shè)置,作用未知
? ? ? ? /// </summary>
? ? ? ? /// <param name="configFile"></param>
? ? ? ? public static void SetConfig(FileInfo configFile)
? ? ? ? {
? ? ? ? ? ? log4net.Config.XmlConfigurator.Configure(configFile);
? ? ? ? }
? ? ? ? /// <summary>
? ? ? ? /// 寫(xiě)信息齐饮。
? ? ? ? /// </summary>
? ? ? ? /// <param name="info"></param>
? ? ? ? public static void WriteLog(string info)
? ? ? ? {
? ? ? ? ? ? if (loginfo.IsInfoEnabled)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? loginfo.Info(info);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? /// <summary>
? ? ? ? /// 寫(xiě)日志捐寥。出錯(cuò)時(shí)會(huì)寫(xiě)入
? ? ? ? /// </summary>
? ? ? ? /// <param name="info"></param>
? ? ? ? /// <param name="se"></param>
? ? ? ? public static void WriteLog(string info, Exception se)
? ? ? ? {
? ? ? ? ? ? if (logerror.IsErrorEnabled)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? logerror.Error(info, se);
? ? ? ? ? ? }
? ? ? ? }
? ? }
//可以自己自定義更多級(jí)別
最后調(diào)用, LogHelper.WriteLog(xx)
發(fā)布后如果還沒(méi)有記錄祖驱,將配置文件log4net.config放在bin文件夾下試試
網(wǎng)上有很多更詳細(xì)的操作握恳,在這里記錄一下自己學(xué)習(xí)之后怎么調(diào)用,第四步配置的地方開(kāi)始沒(méi)有一直記錄不上日志捺僻。