gpt4 book ai didi

android - Xamarin 上的 NLog 日志文件 - Android 问题

转载 作者:搜寻专家 更新时间:2023-11-01 09:28:41 25 4
gpt4 key购买 nike

我一直在尝试使用来自 android 的 NLog,它在使用基于控制台的输出时可以正常工作。但是,当我尝试定位外部存储区域/文件时,什么也没有发生……没有创建日志文件……

我的 list 包含以下几行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我的 Nlog.config

<?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"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<targets>
<target name="logfile" xsi:type="File" fileName="storage\emulated\0\Download\log.txt" />
</targets>
<rules>
<!-- add your logging rules here -->
<logger name="*" minlevel="Error" writeTo="logfile" />
</rules>
</nlog>

我的 Activity MainActivity.cs :

    protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Logger sm_logger = LogManager.GetCurrentClassLogger();
sm_logger.Debug("test output");
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
}

所有这些代码都在运行,似乎没有抛出任何错误,但是也没有创建任何文件...使用控制台记录器确实会输出到控制台,但是...任何帮助将不胜感激。

注意:

我同时使用模拟器和设备,都没有创建日志文件。

我正在为 android 7.1 级别 25 的 api 构建。

NLog.config 文件被 bundle 为一个 androidasset,并且似乎可以加载,因为它可以找到目标等

最佳答案

拥有是不够的

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

你还需要像这样请求许可

ActivityCompat.RequestPermissions(Adapter.Activity, new String[] { Manifest.Permission.WriteExternalStorage }, 1234);

(这是不完整的,您还需要处理许可结果,但有很多关于如何处理的好资源)。

这需要在创建 NLog FileTarget 之前发生。

关于android - Xamarin 上的 NLog 日志文件 - Android 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com