Nlog 控制台目标无法单声道工作?
Nlog console target not working mono?
我有一个非常简单的控制台应用程序。我在控制台目标中添加了 Nlog,但在单声道 运行 时(在 windows 和 ubuntu 上)我无法让它工作。我试过文件目标并且它有效。
我错过了什么?
代码
class Program
{
private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
Type t = Type.GetType("Mono.Runtime");
if (t != null)
Console.WriteLine("You are running with the Mono VM");
else
Console.WriteLine("You are running something else");
Console.WriteLine("Lets go Mono");
logger.Trace("Sample trace message");
logger.Debug("Sample debug message");
logger.Info("Sample informational message");
logger.Warn("Sample warning message");
logger.Error("Sample error message");
logger.Fatal("Sample fatal error message");
}
}
配置
<?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 async="true">
<target name="console" xsi:type="Console"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="console" />
</rules>
</nlog>
Nlog包
<package id="NLog" version="4.3.10" targetFramework="net452" />
您的代码和配置看起来有效。
使用 NLog 4.3.10 的 Mono 上的控制台目标存在问题,which will be fixed in 4.3.11。由于 Environment.UserInteractive
在 Mono
上无法正常工作,因此检测控制台是否可用无法正常工作
现在为 Mono 设置 detectConsoleAvailable="false"
,所以:
<target name="console" xsi:type="Console" detectConsoleAvailable="false"/>
我有一个非常简单的控制台应用程序。我在控制台目标中添加了 Nlog,但在单声道 运行 时(在 windows 和 ubuntu 上)我无法让它工作。我试过文件目标并且它有效。 我错过了什么?
代码
class Program
{
private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
Type t = Type.GetType("Mono.Runtime");
if (t != null)
Console.WriteLine("You are running with the Mono VM");
else
Console.WriteLine("You are running something else");
Console.WriteLine("Lets go Mono");
logger.Trace("Sample trace message");
logger.Debug("Sample debug message");
logger.Info("Sample informational message");
logger.Warn("Sample warning message");
logger.Error("Sample error message");
logger.Fatal("Sample fatal error message");
}
}
配置
<?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 async="true">
<target name="console" xsi:type="Console"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="console" />
</rules>
</nlog>
Nlog包
<package id="NLog" version="4.3.10" targetFramework="net452" />
您的代码和配置看起来有效。
使用 NLog 4.3.10 的 Mono 上的控制台目标存在问题,which will be fixed in 4.3.11。由于 Environment.UserInteractive
在 Mono
现在为 Mono 设置 detectConsoleAvailable="false"
,所以:
<target name="console" xsi:type="Console" detectConsoleAvailable="false"/>