2015-09-04 73 views
1

所以我想在c#中記錄一個事件。例如,我希望每次將按鈕壓入.txt文件時都會記錄日誌,並且每次選擇按鈕時都會使用該文件,而不是創建新的.txt文件。我不知道該怎麼做,甚至從哪裏開始。我不想要一些奢侈的代碼庫來做到這一點。有沒有人知道一個簡單而快捷的方法?如何編寫c#日誌文件?

使用VS 2015的.NET 4.5目標框架。

+0

在一般的「有什麼辦法做到X」問題是這麼過於寬泛。你可以考慮閱讀像http://stackoverflow.com/questions/20185015/how-to-write-log-file-in-c這樣的老問題,以改善你的文章,並縮小範圍。 –

回答

3

我相信你正在尋找NLOG,檢查的官方tutorial

您的終端代碼將如下所示:

using NLog;

public class YourClass 
{ 
    private static Logger logger = LogManager.GetCurrentClassLogger(); 

    public void ButtonWasPressedEvent() 
    { 
    logger.Info("Thanks for pressing dude!"); 
    } 
} 

安裝可以使用NuGet,這應該很簡單。

+1

得愛NLog!我正在輸入相同的東西,看到你的答案進來:) – Anonymous

+0

謝謝你好先生!太棒了!! –

0

古老的log4net是基於java前身log4j的.NET日誌記錄器的Apache基礎解決方案。

這也是installable via NuGet但確實需要一些不平凡的配置,由於其強大功能和靈活性。 log4net可以在代碼中或項目中的配置文件(或app.configweb.config)構成。

日誌可以存儲在平面文件或在您的選擇,或者是兩者的數據庫系統,通過廣泛組可用appenders的。例如,在RollingFileAppender指定大小或間隔寫入其中「軋」一個文件(啓動一個新的文件):

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="log.txt" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="100KB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 

多個追加程序可以同時使用直接日誌條目到多個目的地。另外,可以定義多個記錄器,每個記錄器都有自己的一套appender。

The full feature set is listed here.