如何在Xamarin Android中使用NLog

本文关键字:NLog Android Xamarin | 更新日期: 2023-09-27 18:06:48

我想在我的Xamarin中使用NLog。Droid项目。我安装了NLog。配置和依赖项,并将NLog.Config和NLog.xsd手动移动到Assets文件夹,并将NLog.Config构建操作更改为AndroidAsset。

正如您在从Assets文件夹自动加载NLog.config中看到的那样,我想将NLog.confi格放入Assets文件夹是没有问题的。

之后,我更改了NLog.config,如下所示

<targets>
    <target name="console" xsi:type="Console" layout="${longdate} ${callsite} ${level} ${message}"/>
</targets>
<rules>
    <logger name="*" minlevel="Info" writeTo="console" />
</rules>

在那之后,我写了一些代码,如下所示,用于在控制台中写一些日志

ILogger logger = LogManager.GetCurrentClassLogger();
for (int c = 0; c < 1000; ++c)
    logger.Debug("Hi there");

但在那之后,当"Show Output from"设置为Debug时,我在Android设备日志或输出选项卡中看不到任何消息。

我找对地方了吗?

如何在Xamarin Android中使用NLog

您的配置显示最低级别info:

<logger name="*" minlevel="Info" writeTo="console" />

但是你正在写debug级别的。低于CCD_ 3。

logger.Debug("Hi there");

因此,将记录器规则更改为:(级别名称和属性名称不区分大小写(

<logger name="*" minlevel="debug" writeTo="console" />

NLog v5不再自动扫描Androids Assets文件夹中的NLog.config。

从Assets文件夹中显式加载NLog.config,或者考虑将NLog.confi格嵌入为Assembly Ressource:

NLog.LogManager.Setup().LoadConfigurationFromAssemblyResource(typeof(App).GetTypeInfo().Assembly);

另请参阅:https://github.com/NLog/NLog/wiki/Explicit-NLog-configuration-loading

注意NLog。目标。MauiLog也可以用于特定平台的输出:

  • 安卓系统-安卓系统。乌蒂尔。日志/LogCat
  • Apple iOS/AcOS-统一日志OSLog(取代打印和NSLog(