【发布时间】:2018-08-16 15:06:43
【问题描述】:
我一直在尝试构建一个使用 NLog 来记录文件的应用程序。代码非常基本,但似乎不起作用。有人有想法么?我也将正确的东西设置为“始终复制”,就像在这个问题中一样。 NLog doen't work on IIS
代码如下。
MAIN(包括 using 语句以表明我实际上正在使用它们)
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Configuration;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
class Program
{
static void Main(string[] args)
{
var logger = LogManager.GetCurrentClassLogger();
logger.Debug("xxxx");
}
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">
<targets>
<target name="file" xsi:type="File"
layout="${longdate} ${logger} ${message}"
fileName="${basedir}/log/logfile.txt" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="file" />
</rules>
</nlog>
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.2.1.0" newVersion="3.2.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
【问题讨论】:
-
日志文件夹是否存在?使用
createDirs="true"自动为文件目标创建目录。如果这不起作用,您可能没有该目录的权限。 -
您是否尝试过这里的故障排除:github.com/NLog/NLog/wiki/Logging-Troubleshooting
-
你的 exe 对 ${basedir} 有写权限吗?
-
@AustinDonley 尝试从您的代码中创建一个空文件。提示:如果您的应用程序是从一个特殊文件夹(windows、程序文件等)运行并且没有运行提升权限,则默认情况下它没有写入权限。
-
很高兴听到您解决了这个问题!将在一分钟内发布。