标签: nlog

日志。单例并调用类/方法/线程

只是想加快速度。

2个问题..

我的意图是有一个单例类,使 NLog 可用于整个应用程序......这是正确的方法。

我如何在日志中记录条目的来源,即类..方法..线程等。

logging nlog

1
推荐指数
1
解决办法
1764
查看次数

登录多层应用程序

我正在企业项目中工作,并尝试使用nLog实现良好的日志记录,我想知道是否有一本书谈论日志记录的最佳实践,

因为我不想开始记录没有标准模式的所有内容,所以如果我可以从其他人停止的地方开始,那将非常有帮助,

也许有人可以使用nLog向我提供最佳实践的信息。...

提前致谢...

c# logging nlog

1
推荐指数
1
解决办法
1298
查看次数

记录框架和多线程兼容性

请注意,我在SO上看到了这些问题(讨论了log4net的线程安全性),我怀疑他们回答了我的问题,但我还是会问:

多线程安全日志记录

Log4Net FileAppender不是线程安全的吗?

最近我写了一个用于日志记录的WCF服务.这个想法非常类似于Clog(或者在Calcium下寻找Clog).基本上,我已经实现了一个用于Silverlight客户端(Silverlight类库)的日志API.日志记录API或多或少是我们在应用程序中的其他地方使用的Common.Logging for .NET API的克隆.API的实现将所有日志记录消息转发到WCF日志记录服务,该服务本身是根据Common.Logging实现的.

在看Clog的时候,我在Log4NetStrategy课堂上发现了以下代码让我觉得有些奇怪:

/// <summary> 
/// All Write log calls are done asynchronously because the DanielVaughan.Logging.Log 
/// uses the AppPool to dispatch calls to this method. Therefore we need to ensure 
/// that the call to Log is threadsafe. That is, if an appender such as FileAppender is used, 
/// then we need to ensure it is called from no more than one thread at a …
Run Code Online (Sandbox Code Playgroud)

.net logging log4net multithreading nlog

1
推荐指数
1
解决办法
2146
查看次数

Nlog泛型方法

NLog具有logger.Fatal("Message",T object)等方法.

我脑子里有两个问题 -

除了类型安全记录器之外,这些方法的目的是什么?

我们可以使用此方法在运行时根据对象属性构造动态消息字符串吗?

我们希望在运行时基于对象属性构造消息,以便Nlog可以反映该类型.这可能吗 ?

.net c# logging nlog

1
推荐指数
1
解决办法
2421
查看次数

建议设计:应用程序中几乎每个对象都有loggger

我正在写一个应用程序.我使用NLog进行日志记录.在这个应用程序中几乎每个对象都可以写入日志.我为此定义了受保护的成员:

protected Logger logger;

protected virtual Logger Logger
{
     get { return logger ?? (logger = LogManager.GetLogger(this.GetType().ToString())); }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我需要为应用程序中的每个基类复制/粘贴此代码.或者我看到其他选项:使用logger定义特定于应用程序的根对象并将其子类化.但在语义上这听起来是错误的,因为对我来说这不是真正的"是 - "的情况.

还有更好的选择吗?

c# logging design-patterns nlog

1
推荐指数
1
解决办法
355
查看次数

在RichTextBox中显示NLog跟踪

我想在应用程序执行的同时显示NLog跟踪RichTextBox

logger.Trace("This is a Trace message");
logger.Debug("This is a Debug message");
logger.Info("This is an Info message");
logger.Warn("This is a Warn message");
logger.Error("This is an Error message");
logger.Fatal("This is a Fatal error message");
Run Code Online (Sandbox Code Playgroud)

NLog任何全球事件,所以有可能使用它并填充RichTextBox

谢谢!

.net c# nlog richtextbox

1
推荐指数
1
解决办法
2163
查看次数

更改日志文件.NET Core + NLog的动态文件路径

在我的.NET Core应用程序中,我使用了一些环境,我想为每个环境执行不同的路径来记录文件.

例如,

Development - c:\logs
Staging - d\apps\logs
Run Code Online (Sandbox Code Playgroud)

对于每个环境,我都有配置部分appsettings.{env}.json:

"LocalPaths": {
    "LogFileRootDirectory": "c:\\logs\\"
}
Run Code Online (Sandbox Code Playgroud)

部分原因nlog.config:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="Warn"
      internalLogFile="${logFileRootDirectory}internal-nlog.txt">
    ...
</nlog>
Run Code Online (Sandbox Code Playgroud)

实现它的最佳方法是什么?

nlog asp.net-core

1
推荐指数
1
解决办法
3648
查看次数

nlog .netcore关闭Microsoft INFO级别的日志记录

如何关闭nlog / .netcore中的Microsoft信息级别日志记录?

我仍然想要其他记录器的信息记录

我目前有:

  <rules>
    <logger name="Microsoft.*" minlevel="Error" writeTo="nxlog_json" />
    <logger name="Microsoft.*" minlevel="Error" writeTo="human_text_file" />
    <logger name="*" minlevel="Info" writeTo="nxlog_json" />
    <logger name="*" minlevel="Info" writeTo="human_text_file" />
  </rules>
Run Code Online (Sandbox Code Playgroud)

这不起作用,如果我删除:

<logger name="*" minlevel="Info" writeTo="nxlog_json" />
<logger name="*" minlevel="Info" writeTo="human_text_file" />
Run Code Online (Sandbox Code Playgroud)

它确实适用于Microsoft日志记录,但是随后删除了其他记录器的所有日志记录。

我想念什么?我假设记录器名称=“ ”覆盖了Microsoft的第一个条目。,但我不想显式指定其他记录器名称。

logging nlog asp.net-core

1
推荐指数
1
解决办法
1939
查看次数

让nlog写入控制台

我对nlog很陌生。我有一个使用nlog的.NET Framework控制台应用程序。我希望将nlog配置为直接将日志写入控制台。我安装了nlog和nlog.config nuget软件包,其中nlog.config中包含以下内容

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
  <targets>
    <target xsi:type="Console"
            name="String"
            layout="Layout"
            footer="Layout"
            header="Layout"
            encoding="Encoding"
    />
  </targets>
</nlog>
Run Code Online (Sandbox Code Playgroud)

然后在C#中,以下两行将不会打印到控制台。

var logger = LogManager.GetCurrentClassLogger();
logger.Info("hello");
Run Code Online (Sandbox Code Playgroud)

在网上看过,但至今没有找到任何东西。

.net nlog nlog-configuration

1
推荐指数
2
解决办法
3900
查看次数

尝试删除NLog.config导致“无法修改源自导入文件的评估对象”

我一直将其内容NLog.config移至我的网站App.config,并打算删除原始的nlog配置文件。

但是Visual Studio 2017 Enterprise (15.8.4),由于以下错误消息,我无法这样做:

无法修改源自导入文件的评估对象。C:...... csproj.nuget.g.props

打开上述文件时,我发现以下部分:

  <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<None Include="$(NuGetPackageRoot)nlog.config\4.5.10\contentFiles\any\any\NLog.config" Condition="Exists('$(NuGetPackageRoot)nlog.config\4.5.10\contentFiles\any\any\NLog.config')">
  <NuGetPackageId>NLog.Config</NuGetPackageId>
  <NuGetPackageVersion>4.5.10</NuGetPackageVersion>
  <NuGetItemType>None</NuGetItemType>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  <TargetPath>NLog.config</TargetPath>
  <Private>True</Private>
  <Link>NLog.config</Link>
</None>
Run Code Online (Sandbox Code Playgroud)

删除后段<ItemGroup>NLog.config走了,但自动生成默认的内容又上来了。

长话短说:NLog.config将所有配置内容移至项目后,如何删除项目根目录下的文件App.config

c# nlog visual-studio-2017

1
推荐指数
1
解决办法
357
查看次数