Tag: logging

Nlog – 为日志文件生成标题部分

刚刚开始尝试使用NLog,我发现我希望能够将头信息添加到日志文件的顶部,例如: 可执行文件名文件版本发布日期Windows用户ID等… 经过一些搜索后,我无法在现有的在线文档或代码论坛中找到任何表明此类function的内容。 这可能吗? 我以前总是将这种信息包含在日志文件中,并且在过去的许多事件中发现它很有用,当时在客户站点获取有关生产问题的信息。 不可否认,此function是为解决方案定制的,而不是基于任何当前的.NET日志框架。

如何在文件中记录exception?

我希望能够记录每个catch块。 像这样的东西。 catch (Exception exception) { Logger.Write(exception); } 然后配置中的设置将使用客户监听器获取Message和StackTrace属性等。 我想使用Enterprise Library Logging Application Block。 我敢肯定有人必须已经这样做了。

log4net记录所有未处理的应用程序错误

你能指点我一些关于如何使用log4net记录我的mvc web应用程序上发生的未处理exception的教程或示例。 谢谢

使用AdoNetAppender的Log4Net – 没有任何反应

描述 我有一个配置文件作为我的程序集中的资源,并希望在我的应用程序中以编程方式更改ConnectionString。 我使用log4net.Config.XmlConfigurator.Configure加载配置。 我有一些断点,看到配置是成功加载的,连接Data Source=localhost\SQLExpress;Initial Catalog=Log;Integrated Security=SSPI;是Data Source=localhost\SQLExpress;Initial Catalog=Log;Integrated Security=SSPI; (本地SQLExpress)。 问题 没有任何事情发生,没有例外,没有日志条目。 有任何想法吗。 using (Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(“MyNamespace.Properties.log4net.config”)) { // stream is NOT null log4net.Config.XmlConfigurator.Configure(stream); } Hierarchy hier = LogManager.GetRepository() as Hierarchy; if (hier != null) { //get ADONetAppender var adoAppender = (AdoNetAppender)hier.GetAppenders().Where(appender => appender.Name.Equals(“AdoNetAppender”, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault(); if (adoAppender != null) { // update connectionstring […]

.NET日志框架

在java世界中你有log4j和一个相当不错的日志框架,C#/ .NET有什么类似的吗?

使用包装器时,Nlog Callsite错误

我正在使用NLog进行日志记录,我使用包装器来调用日志方法,我的问题是:如果我尝试打印有关调用站点( ${callsite} )的信息,它会打印包装器方法而不是原始方法导致记录器记录。 有没有办法获得调用包装器方法的原始方法?

WCF服务属性用于记录方法调用和exception

我需要在WCF服务中记录每个方法调用,并抛出任何exception。 这导致了许多冗余代码,因为每个方法都需要包含类似于此的样板: [OperationContract] public ResultBase Add(int x, int y) { var parameters = new object[] { x, y } MyInfrastructure.LogStart(“Add”, parameters); try { // actual method body goes here } catch (Exception ex) { MyInfrastructure.LogError(“Add”, parameters, ex); return new ResultBase(“Oops, the request failed”, ex); } MyInfrastructure.LogEnd(“Add”, parameters); } 有没有办法可以将所有这些逻辑封装到MyServiceLoggingBehaviorAttribute属性中,我可以将其应用于服务类(或方法),如下所示: [ServiceContract] [MyServiceLoggingBehavior] public class MyService { […]

如何在包装NLog时保留呼叫站点信息

我有一个包装NLog的类(称为NLogger)。 我的日志保存到我的数据库中。 我遇到问题的是如何显示日志记录的位置。 我有这个 但这只是显示Core.Logging.Loggers.NLogLogger.Log这是我的NlogWrapper而不是调用我的包装器的类。 这是我的包装方法 public void Log(LogType messageType, Type context, string message, Exception exception) { NLog.Logger logger = NLog.LogManager.GetLogger(context.Name); LogLevel logLevel = LogLevel.Info; // Default level to info switch (messageType) { case LogType.Debug: logLevel = LogLevel.Debug; break; case LogType.Info: logLevel = LogLevel.Info; break; case LogType.Warning: logLevel = LogLevel.Warn; break; case LogType.Error: logLevel = […]

使用log4net捕获用户名

我目前将所有log4net事件写入数据库,它似乎工作正常。 要捕获登录的用户帐户,我使用以下代码: HttpContext context = HttpContext.Current; if (context != null && context.User != null && context.User.Identity.IsAuthenticated) { MDC.Set(“user”, HttpContext.Current.User.Identity.Name); } 代码似乎没问题,除了没有与之关联的用户上下文的事件(即我们公共网页上的用户)。 在这种情况下,log4net捕获似乎有时写入最后登录的用户帐户(坏),有时写入空(好)。 任何人都有这个function在所有情况下都可靠地工作? 我相信我看到一条说明MDC不再是推荐使用的function,但我无法找到任何推荐的替代品。 注意:我发现MDC设置了帐户名称很奇怪,但如果没有用户处于活动状态,则永远不会清除。 这可能是问题的一部分。 但是,我没有找到任何也清除用户名的MDC代码提取。