为什么NLog LogManager为Release版本返回null,但是对于Debug可以正常工作?

时间:2017-04-21 06:36:45

标签: c# xamarin.android nlog

我有一行代码如下:

LoggingConfiguration config = LogManager.Configuration;

当我在Debug构建中运行它时,返回配置就好了。当我在Release版本中运行它时会抛出一个异常,我追踪到这个调用返回null。

我解压缩了两个APK,可以看到资产文件夹中的NLog.config文件。 我还编写了一些显式加载文件并将其输出到Console.Writeline的代码,它在Debug和Release版本中都有效。

我添加了一个空检查,但我确实想修改NLog配置,并在调用此代码时进行一些日志记录。

NLog上的Nuget包信息:

<package id="NLog.Config" version="4.4.3" targetFramework="monoandroid41" />

我通过Windows版本测试了应用程序(Xamarin.Windows,因此有些共享代码)。发现日志记录在发布模式下工作正常。

我研究了如何让NLog登录到其内部日志文件(必须使用显式路径指向它有权写入的位置)。

internalLogToConsole ="true" internalLogLevel="Trace" internalLogFile="/storage/sdcard0/Download/nlog-internal.log">

在发布模式下构建和运行时记录的错误是:

Error Parsing configuration from assets/NLog.config failed. Exception: NLog.NLogConfigurationException: Exception when parsing assets/NLog.config. --> NLog.NLogConfigurationException: Cannot access the constructor of type: NLog.Targets.FileTarget. Is the required permission granted? 

我解压了Release APK,可以看到资产文件夹中的NLog.config文件。我想知道如何修改此文件的权限。另外,为什么它在Debug构建中很好,但在Release构建中却没有?

0 个答案:

没有答案