我已經創建了一個通用實現ILogger並在此包裝器中實現了NLog實現方法。 我的問題是我已經在我的解決方案中啓用了整個namspace的錯誤嚴重性,但我也希望在「Employee」命名空間下的類的信息級別診斷,所以我有另一個規則設置此名稱空間下的類符合Info級別日誌記錄。但是,當我只記錄錯誤和致命的記錄這些命名空間下的類。當我調試我可以看到IsInfoEnabled()來爲這些類的記錄器實例爲false? 我覺得他們的方式我配置了我的包裝類似乎是錯誤的? 可以有人建議。日誌級別未啓用NLog日誌記錄器
通用ILogger接口 公共接口ILogger {
bool Trace(string message, params String[] args);
bool Info(string message, params String[] args);
bool Error(string message, params String[] args);
bool Fatal(string message, params String[] args);
bool Error(string message, Exception ex, String[] args);
bool Fatal(string message, Exception ex, params String[] args);
}
實施ILogger接口的
using NLog;
class NLogImpl : ILogger
{
NLog.Logger logger = null;
public NLogImpl(string source)
{
logger = LogManager.GetLogger(source);
}
bool ILogger.Trace(string message ,params String[] args)
{
logger.Trace(BuildArgumentsWithMessage(message , args));
return true;
}...
使用通用ILogger 該類僅記錄錯誤和致命的消息,但沒有任何其他級別類即使在配置文件中,我已啓用Info此命名空間
public class MainTechDetails
{
private static ILogger logger = CommonLogger.GetLogger("MainTechDetails");
public void LogMainTechDetails()
{
logger.Trace("Sample trace message");
logger.Info("Sample informational message");
logger.Error("Sample error message");
logger.Fatal("Sample fatal error message");
}
}
我有一個目標和2條規則這一目標
<target xsi:type="File"
name="logFile"
fileName="D:\LogInformation.log"
layout="${date} ${callsite} ${message}"/>
</targets>
<rules>
<logger name="CustomLoggingNlog.Employee.*" minlevel="Info" writeTo="logFile" />
<logger name="*" minlevel="Error" writeTo="logFile"/>
</rules>
嘿謝謝!它的工作。 – Somu