.net NLog

添加依赖

  <ItemGroup>
    <PackageReference Include="NLog" Version="4.7.13" />
    <PackageReference Include="NLog.Config" Version="4.7.13" />
    <PackageReference Include="NLog.Schema" Version="4.7.13" />
  </ItemGroup>

正常来说, 安装了 NLog.Config , 另外两个也会自动安装, 如果没有, 则手动安装

添加配置文件

需要NLog.xsdNLog.config文件
上一步操作完成后, 有可能可以看到这两个文件, 但是不能编辑, 可以打开所在路径, 然后复制到项目中, 重新添加
如果上一步操作完成后没有在项目中看到, 则可以从如下路径拿到默认的文件:

NLog.config:  C:\Users\laolang\.nuget\packages\nlog.config\4.7.13\contentFiles\any\any
NLog.xsd: C:\Users\laolang\.nuget\packages\nlog.schema\4.7.13\contentFiles\any\any

复制到当前项目, 修改NLog.config的属性为始终复制, 然后修改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="File" name="f" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${logger}:${callsite-linenumber} - ${message}" />
		<target name="logConsole" xsi:type="Console" layout="${longdate} ${uppercase:${level}} ${logger}:${callsite-linenumber} - ${message}"/>
	</targets>
	<rules>
		<logger name="*" minlevel="Info" writeTo="f"/>
		<logger name="*" minlevel="Debug" writeTo="logConsole"/>
	</rules>
</nlog>

cs代码使用

using System.Windows;

namespace my_tools
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        // 引入 Logger
        private static readonly NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();

        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // 打印日志
            log.Info("hello world");
        }
    }
}

效果如下

2022-02-03 23:55:14.3568 INFO my_tools.MainWindow:19 - hello world

问题

WPF .NET 5.0 控制台没有输出

上一篇:Java 实现音频添加自定义时长静音(附代码) | Java工具类


下一篇:let const var