gpt4 book ai didi

c# - 将 log4net 与 asp.net web 表单一起使用

转载 作者:太空狗 更新时间:2023-10-30 00:33:28 26 4
gpt4 key购买 nike

我正在尝试将 log4net 合并到我的 Web 应用程序中。我已经使用基于 .net mvc 的较新部分完成了此操作,但无法将其合并到我的应用程序的基于 Web 表单的部分中。我四处寻找示例,但没有找到。

为了缩小我的问题范围,假设我知道如何配置我的 web.config 文件。我的问题是:

(1) 我考虑过将对 log4net 的实际调用放在“Global.asax”文件中,并将其放在我的基页(所有其他页面都建立在该基页上)中。我应该将实际代码放在这些地方吗?如果不是,我应该把代码放在哪里?

(2) 我对代码的理解是我需要实例化一个日志,然后在需要时使用该日志(日志的具体细节由 web.config 处理),但我不不知道该代码实际上应该是什么样子。那么,我实际上应该在我的文件中放置什么代码? (示例将不胜感激)

谢谢

最佳答案

只需将代码放在您需要的地方。

开始我只是在我需要的每个页面中使用这一行...

static Logger log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

因此记录器获取当前类的名称,包括完整的命名空间。我还在 global.asax 中使用记录器,例如错误记录

protected void Application_Error(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("Unhandled error occured in application. Sender: ");
sb.AppendLine(Request.RawUrl);
sb.Append("Query: ");
sb.AppendLine(Request.QueryString.ToString());

Exception ex = Server.GetLastError().GetBaseException();

log.Error(sb.ToString(), ex);
Server.ClearError();

Response.Redirect("~/Error.aspx");
}

但我将日志配置与 web.config 分开。这对我来说更容易,而且您不必处理这么大的文件。我还认为,当您更改日志配置文件时,应用程序不会重新启动。据我所知,如果您更新 web.config,应用程序总是会重新启动。

要完成此操作,您只需将以下内容添加到 web.config添加

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

将这一行添加到 web.config 的某处

<log4net configSource="log.config"/>

然后文件“log.config”配置了所有的监听器。但不要忘记将文件复制到您的生产/测试环境。否则你可能会收到奇怪的错误信息。

第一个

关于c# - 将 log4net 与 asp.net web 表单一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11761731/

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