【问题标题】:How can I log a messages to a txt file with Nlog in MVC?如何在 MVC 中使用 Nlog 将消息记录到 txt 文件?
【发布时间】:2012-05-22 22:15:23
【问题描述】:

我在我的 MVC 项目中使用 Nlog

我想要实现的是在我的控制器中执行操作方法时记录一条消息。并且日志消息应该出现在 txt 文件中。但我似乎无法让它工作

我已将 Nlog 安装到我的引用中。

我有如下配置的 Nlog.Config:

<?xml version="1.0" ?>
<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}/logs/logfile.txt"
                keepFileOpen="false"
                encoding="iso-8859-2" />
    </targets>
    <rules>
        <logger name="*"
                minlevel="Debug"
                writeTo="file" />
    </rules>
</nlog>

然后在我的控制器中的 POST 操作方法中,我有以下代码:

[HttpPost]
public ActionResult Edit(int id, CreateNKIphase1ViewModel model)
{
    Logger logger = LogManager.GetCurrentClassLogger();
    logger.Info("Test message");

     //code....
}

在哪里可以找到 txt 文件?

为什么这不起作用:S

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-3 logging nlog


    【解决方案1】:

    如果您在调试模式下运行应用程序,您可以通过以下路径找到它:

    "%PARTITION%:\\...PATH TO YOUR APP...\bin\Debug\\...
    

    【讨论】:

      【解决方案2】:

      它运行良好,但是用于 asp.net 应用程序的 ${basedir} 与用于典型桌面应用程序的不同。我相信这个文件可以从临时文件夹中获得,离你的应用程序集不远。

      您可以定义自己的变量或定义对“日志”文件夹的直接访问。确保应用程序可以将日志写入此文件夹。使用this 答案,它完美地描述了你应该做什么

      【讨论】:

        【解决方案3】:

        如果您的应用程序使用应用程序池标识在 IIS 中运行,则您需要向该标识授予文件夹权限。

        • 创建“日志”文件夹。
        • 在 IIS 管理器中,找到您的应用程序正在使用的应用程序池标识。
        • 在“日志”文件夹属性对话框中,向应用程序池标识授予写入权限。

        当您输入应用程序池标识的名称时,您需要包含IIS APPPOOL。例如,如果应用程序池标识为ASP.NET v4.0,则输入名称为IIS APPPOOL\ASP.NET v4.0。另外,请确保该位置是本地计算机,而不是网络域。

        【讨论】:

          【解决方案4】:

          为什么不将fileName 属性设置为已知的路径和名称,而不是使用${basedir} 格式?

          fileName="C:\Temp\logfile.txt"
          

          这样你就会知道文件应该在哪里。一旦您完成了该部分的日志记录,您就可以开始添加更高级的技术。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-04
            • 2012-10-26
            • 1970-01-01
            • 2021-11-27
            • 1970-01-01
            相关资源
            最近更新 更多