如何在ASP.NET网站虚拟目录上编写日志?

发布于 2024-10-16 10:08:56 字数 145 浏览 1 评论 0 原文

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

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

My website is running as an ASP.NET user in IIS. I've created one virtual directory, 'Logs', which is internally pointing to my shared drive folder which is access by a limited number of users. How can I create a log file on the virtual directory with log4net?

Do I (or can I) provide user credentials when I create the logger or the file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雄赳赳气昂昂 2024-10-23 10:08:56

看起来没问题将日志文件写入您的虚拟目录网站。您只需通过编写配置告诉 log4net 该路径是相对于当前目录的。

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

现在,如果您想将当前用户名放入日志消息中,您需要研究 log4net 上下文。将当前用户隐藏在 log4net 上下文中

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

并在 Appender 中将其拉出 布局

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

It looks like there's no problem writing log files to a virtual directory on your website. You just tell log4net that the path is relative to the current directory by writing the configuration

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

Now, if you want to put the current username in the log message, you'll want to investigate log4net Contexts. Stashing the current user in the log4net context

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

And pulling it out in the Appender layout

<appender ...>
    <layout ...>
        <conversionPattern value="%date %-5level [%property{user}] %message%newline" />
    </layout>
</appender>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文