最近在公司實習,暫時還沒有上網的權限,回家又太累了.好久沒來更新文章了,其實最近是有生以來進步最快的幾天.
閒話不多說,今天開始著手考慮我畢業設計的問題.想用Log4net來記錄日志信息.log4net在網上的介紹很多.我就不多說了,我就談談今天解決的問題.
最開始在一個單獨的項目裡,使用log4net記錄日志完全沒有問題.但後來,我希望在項目裡多次用到它,我就想把它再進一步的進行封裝,於是,我新建了一個類庫的項目,新建一個logout類,配置.然後在我的啟動項目(另外一個項目)裡調用,結果是怎麼也不能記錄信息,跟蹤了一下,是監聽沒有啟動成功.想了很久原因,最後把配置文件的路徑改為絕對路徑,成功了.但我不可能以後系統發布也使用了絕對路徑吧,於是我又試了一下,把log4net的配置文件直接復制到啟動項目的debug文件夾裡,OK!
以下是我的一些代碼:
封裝的類
using System;
using System.Collections.Generic;
using System.Text;
[assembly: log4net.Config.XmlConfigurator(ConfigFile="zylog.config",Watch=true)]
namespace ZYGIS.Log
{
public class LogOut
{
public static readonly log4net.ILog log = log4net.LogManager.GetLogger("ZYGIS");
public static void Debug(string message)
{
if (log.IsDebugEnabled)
{
log.Debug(" 調試信息:\r\n "+message+"\r\n\r\n");
}
}
public static void Info(string message)
{
if (log.IsInfoEnabled)
{
log.Info(" 信息:\r\n " + message + "\r\n\r\n");
}
}
public static void Error(string message)
{
if (log.IsErrorEnabled)
{
log.Error("錯誤信息:\r\n " + message + "\r\n\r\n");
}
}
}
}
配置文件:zylog.config //這個文件放到主程序的目錄下
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="%日志\%date{yyyMMdd}\log.txt" />
<sppendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %message" />
</layout>
</appender>
<root>
<appender-ref ref="LogFileAppender" />
</root>
<logger name="ZYGIS">
<level value="All" />
<appender-ref ref="RollingLogFileAppender"/>
</logger>
</log4net>
</configuration>
在主程序中調用:
Log.LogOut.Info("關閉軟件,結束運行");