【问题标题】:How to write a log on an ASP.NET website virtual directory?如何在 ASP.NET 网站虚拟目录上写日志?
【发布时间】:2011-02-09 06:09:13
【问题描述】:

我的网站在 IIS 中作为 ASP.NET 用户运行。我创建了一个虚拟目录“日志”,它在内部指向我的共享驱动器文件夹,该文件夹由有限数量的用户访问。如何使用 log4net 在虚拟目录上创建日志文件?

当我创建记录器或文件时,我是否(或者我可以)提供用户凭据吗?

【问题讨论】:

  • 什么样的日志文件?您不能将 IIS 日志指向您的虚拟目录吗?
  • 在允许他们的会话创建日志之前是否需要对用户进行身份验证?用户是否直接访问日志?还是您只想在日志消息中显示当前用户名,例如... 01-01-2011 INFO [anthony.mastrean] Logged on.

标签: asp.net iis log4net virtual-directory


【解决方案1】:

似乎有 no problem 将日志文件写入您网站上的虚拟目录。您只需通过编写配置告诉 log4net 该路径是相对于当前目录的路径

<appender ...>
    <file value="Logs\website.log" />
</appender>

现在,如果您想将当前用户名放入日志消息中,您需要调查 log4net Contexts。在 log4net 上下文中存储当前用户

log4net.ThreadContext.Properties["user"] = HttpContext.Cache["current-user"];

并在 Appender 中将其拉出layout

<appender ...>
    <layout ...>
        <conversionPattern value="%date %-5level [%property{user}] %message%newline" />
    </layout>
</appender>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多