2010-08-06 53 views
0

我想在我的asp.net應用程序&我做下面的事情使用log4net的:日誌文件被錯誤後即將空白log4net的

在Web.config文件

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
</configSections> 
<log4net> 
    <logger name="File"> 
    <level value="All" /> 
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 
     <param name="File" value="Logs\\Log4Net.log"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/> 
     </layout> 
    </appender> 
    </logger> 
</log4net> 

在全球。 ASAX

<%@ Application Language="C#" %> 

<script runat="server"> 

void Application_Start(object sender, EventArgs e) 
{ 
    // Code that runs on application startup 
    log4net.Config.XmlConfigurator.Configure(); 

} 

並在Page_Load中

try 
{ 
    // There is no such Session, this is just to create error 
    if (Session["userName"].ToString() == "Admin") 
    { 

    } 
} 
catch(Exception ex) 
{ 
    log4net.ILog logger = log4net.LogManager.GetLogger("File"); 
} 

我在我的BIN文件夾中也添加了參考。

當我運行我的代碼,我得到了錯誤按預期在我的解決方案資源管理器會創建一個新的文件夾後,用日誌文件。但是日誌文件是空的。

我沒有猜測,爲什麼會發生,是不是能夠跟蹤或記錄錯誤?

請幫忙。提前致謝。

+0

你在哪裏寫入'logger'?我看不到任何這樣的代碼。 – leppie 2010-08-06 07:22:40

+0

我在互聯網上發現了這個代碼步驟,並且已經在相同的步驟中實現了,我正在使用這個第一次。你能指導我在什麼地方寫什麼,爲編程器編寫代碼。 謝謝 – Rahul 2010-08-06 07:25:10

+0

請參閱@Stefan Egli的回答。只需要RTM多一點。 – leppie 2010-08-06 07:29:21

回答

1

由於leppie指出的那樣,似乎並沒有被寫入日誌信息的任何代碼。你的錯誤時拋出的處理程序應該propably是這樣的:

catch(Exception ex) 
{ 
    log4net.ILog logger = log4net.LogManager.GetLogger("File"); 
    logger.Error("something went wrong", ex); 
} 

您發佈的配置似乎也是不完整的。您需要一個log4net部分(參見example configurations)。

+0

謝謝!正如我可以看到記錄器(對象)的更多屬性,我想現在是時候讓我玩Log4Net了。再次感謝你的回覆。 – Rahul 2010-08-06 07:31:22

+0

差不多12分鐘,我發佈了我的答案,我試圖接受你的回答,但我收到了「3分鐘內不能接受答案」的消息。我想我必須多點點。 – Rahul 2010-08-06 07:33:27

+0

:-)也許這是你感興趣的,則:http://www.beefycode.com/post/Log4Net-Tutorial-pt-1-Getting-Started.aspx – 2010-08-06 07:37:54