2013-07-21 99 views
2

我正處於我正在做的一個小型網站開發項目的非常alpha階段,並決定使用NLog作爲我的日誌記錄解決方案。Nlog日誌記錄方法

我的解決方案是迄今爲止沒有記錄開發的。我現在正在添加日誌記錄。

一個例子:

private static Logger logger = LogManager.GetCurrentClassLogger(); 

public int SaveProject(ProjectDto project) 
{ 
    logger.Trace("SaveProject ({0}) : {1}", project.Id, _userId); 
    return _pb.SaveProject(project); 
} 

的「GetCurrentClassLogger」的方法是偉大的,因爲它現在知道我在哪個班

但是,有沒有辦法上報方法名稱,而不是如何。我在做?在上面的例子中,你可以看到我需要在消息中添加「SaveProject」。有沒有辦法自動得到這個?或者我需要將此添加到每個方法日誌記錄調用?

回答

8

是的,請參閱callsite layout renderer。你把它放在你的佈局配置中。例如:

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <targets> 
     <target name="console" xsi:type="ColoredConsole" layout="${callsite:className=false:includeSourcePath=false:methodName=true} ${message}"/> 
    </targets> 

    <rules> 
     <logger name="*" minlevel="Trace" writeTo="console" /> 
    </rules> 
</nlog>