博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用NLog实现一个简单的日志记录(包含源代码)
阅读量:6688 次
发布时间:2019-06-25

本文共 1188 字,大约阅读时间需要 3 分钟。

目前比较流行.net的Log框架是log4net,不过个人觉得log4net配置比较繁琐,这里我向大家推荐一个比较简单实用的log框架:NLog。

有兴趣的朋友可以到下载源代码和demo,这里我就不详细介绍了。
     我尝试做了一个简单的demo,目的是实现一个简单的日志记录, 愿跟大家一起分享。代码如下:

public
 
class
 Log
{
    
Create log instance
    Logger logger;
    
public Log()
    
{
        LogDate 
= DateTime.Now;
        SimpleConfigurator.ConfigureForTargetLogging(GetFileTarget());
        logger 
= LogManager.GetCurrentClassLogger();
    }
    
public void Write(Exception ex)
    
{
        
try
        
{
            logger.Info(ex.Message 
+ "\r \n" + ex.StackTrace);
        }
        
catch
        
{
            
        }
    }
    
public void Write(string message)
    
{
        
try
        
{
            logger.Info(message);
        }
        
catch
        
        
        }
    }
    
private string GetLogFile()
    
{
        
string fileName = "Log_" + DateTime.Now.ToString("yyyy-MM-dd"+ ".txt";
        
return Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "log", fileName);
    }
    
private FileTarget GetFileTarget()
    
{
        FileTarget ft 
= new FileTarget();
        ft.FileName 
= GetLogFile();
        ft.Layout 
= "${longdate} ${message}";
        ft.KeepFileOpen 
= false;
        ft.Encoding 
= "iso-8859-2";
        ft.OpenFileCacheTimeout 
= 10;
        ft.OpenFileCacheSize 
= 1;
        
return ft;
    }
    
private DateTime logDate;
    
public DateTime LogDate
    
{
        
get return logDate; }
        
set { logDate = value; }
    }
}

      使用的时候只需要一行代码:
       Log.DefaultLog().Write("aaa is ok.");
       如果需要记录异常情况,代码如下:
       Log.DefaultLog().Write(ex);
       源代码下载:

你可能感兴趣的文章
Kali Linux 网络扫描秘籍 第三章 端口扫描(一)
查看>>
共享单车步入物联网军备战
查看>>
PHP 魔术变量
查看>>
推荐的PHP编码规范
查看>>
Gartner报告:东方金信进入Hadoop世界厂商名录
查看>>
Python_(1)数据类型及其常见使用方法(图文)
查看>>
如何查看WWN号
查看>>
主页被劫持问题
查看>>
linux中awk学习小结
查看>>
WCF分布式开发常见错误(23):the fact that the server certificate isn't configured with HTTP.SYS...
查看>>
第一个Indigo Service
查看>>
《Pro ASP.NET MVC 3 Framework》学习笔记之三十二 【无入侵的Ajax】
查看>>
监听启动报TNS-12537、TNS-12560错误
查看>>
XXX管理平台系统——项目教训
查看>>
会写代码的项目经理
查看>>
通过Lua解释器来扩展丰富nginx功能,实现复杂业务的处理
查看>>
禁用WPF窗体的最大化按钮
查看>>
玩转React样式
查看>>
TinyHttpd中sockaddr与struct sockaddr_in的区别
查看>>
嘉峪关市与甘肃省广电网络公司对接智慧城市建设项目
查看>>