当前位置:网站首页>NLog使用
NLog使用
2022-07-02 03:27:00 【天天代码码天天】
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="d:\nlog\nlog-internal.log">
<!-- optional, add some variables
https://github.com/nlog/NLog/wiki/Configuration-file#variables
-->
<!--<variable name="myvar" value="myvalue"/>-->
<variable name="logDir" value="${basedir}/nlog"/>
<variable name="logFileName" value="${date:format=yyyyMMdd}.txt"/>
<variable name="logArchiveFileName" value="${date:format=yyyyMMdd}_{#}.txt"/>
<variable name="logLayout" value="Logger:${logger}${newline}Date:${longdate}${newline}Level:${uppercase:${level}}${newline}Message:${message} ${newline}${onexception:Exception:${exception:format=toString}${newline}}" />
<!--
See https://github.com/nlog/nlog/wiki/Configuration-file
for information on customizing logging rules and outputs.
-->
<targets>
<!--
add your targets here
See https://github.com/nlog/NLog/wiki/Targets for possible targets.
See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
-->
<!--
Write events to a file with the date in the filename.
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
-->
<target xsi:type="File" name="info"
layout="${logLayout}"
fileName="${logDir}/info/${logFileName}"
archiveFileName="${logDir}/info/${logArchiveFileName}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="100"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
<target xsi:type="File" name="debug"
layout="${logLayout}"
fileName="${logDir}/debug/${logFileName}"
archiveFileName="${logDir}/debug/${logArchiveFileName}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="100"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
<target xsi:type="File" name="error"
layout="${logLayout}"
fileName="${logDir}/error/${logFileName}"
archiveFileName="${logDir}/error/${logArchiveFileName}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="100"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
</targets>
<rules>
<!-- add your logging rules here -->
<!--
Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f"
<logger name="*" minlevel="Debug" writeTo="f" />
-->
<logger name="*" minlevel="Info" maxlevel="Info" writeTo="info" />
<logger name="*" minlevel="Debug" maxlevel="Debug" writeTo="debug" />
<logger name="*" minlevel="Error" maxlevel="Error" writeTo="error" />
</rules>
</nlog>不要忘记

测试代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NLog;
namespace NlogTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Logger _log = NLog.LogManager.GetCurrentClassLogger();
private void button1_Click(object sender, EventArgs e)
{
_log.Info("信息");
_log.Error("异常");
int a = 0;
int b = 0;
try
{
int c = a / b;
}
catch (Exception ex)
{
_log.Error(ex,"操作异常");
}
}
}
}
效果

边栏推荐
- PY3, PIP appears when installing the library, warning: ignoring invalid distribution -ip
- Unity脚本的基础语法(7)-成员变量和实例化
- FFMpeg AVFrame 的概念.
- Detailed explanation of the difference between Verilog process assignment
- Verilog parallel block implementation
- 焱融看 | 混合雲時代下,如何制定多雲策略
- Kotlin 基础学习13
- 微信小程序中 在xwml 中使用外部引入的 js进行判断计算
- Named block Verilog
- Grpc快速实践
猜你喜欢

Learn PWN from CTF wiki - ret2shellcode
![[golang] leetcode intermediate bracket generation & Full Permutation](/img/93/ca38d97c721ccba2505052ef917788.jpg)
[golang] leetcode intermediate bracket generation & Full Permutation

Docker installs canal and MySQL for simple testing and implementation of redis and MySQL cache consistency

跟着CTF-wiki学pwn——ret2shellcode

SAML2.0 笔记(一)

Uniapp uses canvas to generate posters and save them locally

JS introduction < 1 >
![[C Advanced] brother Peng takes you to play with strings and memory functions](/img/95/ab1bb0b3fa0b99e32233a5ca5d42a4.jpg)
[C Advanced] brother Peng takes you to play with strings and memory functions

Verilog 状态机

Sentry experience and architecture, a fledgling monitoring product with a market value of $100million
随机推荐
Docker installs canal and MySQL for simple testing and implementation of redis and MySQL cache consistency
Kubernetes cluster storageclass persistent storage resource core concept and use
Large screen visualization from bronze to the advanced king, you only need a "component reuse"!
Knowing things by learning | self supervised learning helps improve the effect of content risk control
OSPF LSA message parsing (under update)
UI (New ui:: MainWindow) troubleshooting
One of the future trends of SAP ui5: embrace typescript
ORA-01547、ORA-01194、ORA-01110
Gradle 笔记
Global and Chinese market of handheld ultrasonic scanners 2022-2028: Research Report on technology, participants, trends, market size and share
Download and use of the super perfect screenshot tool snipaste
Global and Chinese markets for ultrasonic probe disinfection systems 2022-2028: Research Report on technology, participants, trends, market size and share
Competition and adventure burr
【DesignMode】建造者模式(Builder model)
Use blocking or non blocking for streamline
[C Advanced] brother Peng takes you to play with strings and memory functions
Sentry experience and architecture, a fledgling monitoring product with a market value of $100million
Kotlin基础学习 14
What is the binding path of SAP ui5
"Analysis of 43 cases of MATLAB neural network": Chapter 42 parallel operation and neural network - parallel neural network operation based on cpu/gpu
https://download.csdn.net/download/lw112190/85812952