这就是我的日志记录的配置方式:
private static void SetupLogging(string logFile)
{
var Config = new NLog.Config.LoggingConfiguration();
var logfile = new NLog.Targets.FileTarget("logfile")
{
FileName = logFile,
Layout = "${longdate}|${level:uppercase=true}|${logger}|${message:withException=true:exceptionSeparator=|}"
};
var logconsole = new NLog.Targets.ConsoleTarget("logconsole");
Config.AddRule(LogLevel.Info, LogLevel.Fatal, logconsole);
Config.AddRule(LogLevel.Debug, LogLevel.Fatal, logfile);
LogManager.Configuration = Config;
}
但是,创建的任何错误日志文件都是 UTF8 编码的,而不是 UTF8 + BOM。我意识到不需要 BOM ,但我使用的其他一些类依赖于存在的 BOM (
CTextFileDocument
) 库。
为此目的,
FileTarget
有一个 WriteBom
属性:
private static void SetupLogging(string logFile)
{
var Config = new NLog.Config.LoggingConfiguration();
var logfile = new NLog.Targets.FileTarget("logfile")
{
FileName = logFile,
WriteBom = true,
Layout = "${longdate}|${level:uppercase=true}|${logger}|${message:withException=true:exceptionSeparator=|}"
};
var logconsole = new NLog.Targets.ConsoleTarget("logconsole");
Config.AddRule(LogLevel.Info, LogLevel.Fatal, logconsole);
Config.AddRule(LogLevel.Debug, LogLevel.Fatal, logfile);
LogManager.Configuration = Config;
}