gpt4 book ai didi

c# - 登录应用程序

转载 作者:行者123 更新时间:2023-11-30 15:40:01 26 4
gpt4 key购买 nike

我构建了一个应用程序,并希望在将其提供给用户之前在我的应用程序中使用日志记录,以了解用户在出现任何错误之前所做的操作。
我以前没有使用过日志记录,所以我使用了一些研究可以为 .NET 中的相同类和可能的 Trace 类找出好的方法,看起来在这种情况下可能会有所帮助。
在我项目的 App.Config 文件中设置 TextWriterTraceListener 并在代码 Trace 中使用文本文件似乎是一个更好的主意.Writeline("错误信息", "字段");

1) 即使在阅读了大量内容之后,我仍然不确定记录日志的好方法?
是否应该有不同的错误记录器和信息记录文件?
日志记录如何指定不同类型的错误(例如警告、严重、错误等?)

2) 我想在解决方案的其他项目之一中使用相同的日志文件。那么,我是否要在项目的 App.Config 中添加相同的 Trace Listener 部分?

最佳答案

使用日志库(例如 log4net),您可以轻松地完成您要求的所有事情。您可以在配置文件中设置日志记录以转到事件日志、文件、控制台等(或任何组合)并独立设置日志记录级别。

也就是说,您可以说该文件将包含信息、警告、错误和 fatal error ,但事件日志将仅记录错误和 fatal error 。

一般来说,几乎所有的日志库都具有这些功能。下面的示例仅就 log4net 而言,但相同的概念适用于大多数日志记录库...

要在您的解决方案中的任何类中获取记录器,您只需要在您的类中请求一个记录器:

public MyClass
{
private static readonly ILog _log = log4net.LogManager.GetLogger(typeof(MyClass));

public void SomeMethod()
{
_log.Debug("This is a debug message.");
_log.Info("This is an informational message.");
_log.Warn("This is a warning message.");
_log.Error("This is an error message.");
_log.Fatal("This is a fatal message.");
}
}

此外,您可以根据记录器进行过滤,也就是说,您可以抑制来自特定类的日志消息或仅显示类子集的日志消息等。

示例配置设置 block 如下所示。这将创建一个滚动文件附加程序(保留数天的日志)和控制台附加程序

<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\AgentLog"/>
<appendToFile value="true"/>
<datePattern value=".yyyy-MM-dd"/>
<rollingStyle value="Date"/>
<MaxSizeRollBackups value="14"/>
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%thread] %-5level %logger{1} - %m%n"/>
</layout>
</appender>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="FATAL"/>
<foreColor value="Yellow"/>
<backColor value="Red, HighIntensity"/>
</mapping>
<mapping>
<level value="ERROR"/>
<foreColor value="Red, HighIntensity"/>
</mapping>
<mapping>
<level value="WARN"/>
<foreColor value="Yellow, HighIntensity"/>
</mapping>
<mapping>
<level value="INFO"/>
<foreColor value="Green, HighIntensity"/>
</mapping>
<mapping>
<level value="DEBUG"/>
<foreColor value="White"/>
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%thread] %-5level %logger{1} - %m%n"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="RollingFileAppender"/>
<appender-ref ref="ColoredConsoleAppender"/>
</root>
</log4net>

关于c# - 登录应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9689644/

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