2015-09-04 113 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.