Wpf使用NLog将日志输出到LogViewer
1 LogViewer
LogViewer是通过UDP传输的高性能实时log查看器。
具有一下特性:
- 通过UDP读取日志
- 通过文件导入日志
- 导出日志到一个文件中
- 排序、过滤(日志树,日志等级)和查找
- 突出显示搜索文本
- 从UPD接收日志时忽略IP地址列表
- 多接收器支持
- 多种颜色主题

项目地址:https://github.com/Styort/LogViewer
2 将NLog日志输出到LogViewer中
2.1 新建wpf项目并添加nlog
wpf项目采用Prism框架,项目名称:LogToLogViewerApp
2.2 添加nlog库及nlog.config文件
nlog库
<PackageReference Include="NLog" Version="5.3.4" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.13" />
<?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"
autoReload="true"
throwExceptions="true"
internalLogFile="c:\temp\console-example-internal.log"
internalLogLevel="Info">
<targets async="true">
<target name="log4view" xsi:type="NLogVIewer" address="udp://127.0.0.1:7071"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="log4view"></logger>
</rules>
</nlog>
将nlog.config文件设置成如果较新则复制。
需要的其他依赖包:
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.3.2" />
<PackageReference Include="DryIoc.Microsoft.DependencyInjection" Version="8.0.0-preview-02" />
2.3 在app.xaml.cs文件中依赖注入功能
重写CreateContainerExtension方法如下:
protected override IContainerExtension CreateContainerExtension()
{
var services = new ServiceCollection();
services.AddLogging(builder =>
{
builder.ClearProviders();
builder.SetMinimumLevel(LogLevel.Debug);
builder.AddNLog();
});
var container = new DryIoc.Container(CreateContainerRules());
var x = container.WithDependencyInjectionAdapter(services);
return new DryIocContainerExtension(x.Container);
//return base.CreateContainerExtension();
}
2.4 在mainwindowviewmodel中使用注入ilogger接口并输出日志
在构造函数中注入ilogger,添加一个Log方法用于日志的输出
public MainWindowViewModel(ILogger<MainWindowViewModel> logger)
{
_logger = logger;
}
[RelayCommand]
private void Log()
{
_logger.LogTrace("Log Trace");
_logger.LogDebug("Log Debug");
_logger.LogInformation("Log Information");
_logger.LogWarning("Log Warning");
_logger.LogError("Log Error");
_logger.LogCritical("Log Critical");
}
3 总结
使用LogViewer可以接收多个app端的日志输出,并可以根据需要选择显示的日志级别。有助于开发人员可以实时关注程序的运行流程。
Wpf使用NLog将日志输出到LogViewer的更多相关文章
- ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件
应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用. ASP.NET ...
- Asp.Net Core NLog 将日志输出到数据库以及添加LayoutRenderer的支持
在这之前打算用Apache的Log4Net,但是发现其AdoNetAppender方法已经不存在了,无法使用配置文件直接输出到数据库了,因此我便改用了NLog框架. 一.对项目添加NLog 通过Nug ...
- [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件
本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ...
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 .NET Core 和 ASP.NET Core . ASP.NET Core已经内置了日志支持,可以 ...
- ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB
一.前言 在项目开发中,日志系统是系统的一个重要组成模块,通过在程序中记录运行日志.错误日志,可以让我们对于系统的运行情况做到很好的掌控.同时,收集日志不仅仅可以用于诊断排查错误,由于日志同样也是大量 ...
- NET Core 实战:使用 NLog 将日志信息记录到 MongoDB
NET Core 实战:使用 NLog 将日志信息记录到 MongoDB https://www.cnblogs.com/danvic712/p/10226557.html ASP.NET Core ...
- .net core 2.0使用NLog写日志文件
原文地址:传送门 之前也看了 linezero 大佬写的教程,但是总是没有成功写入日志文件.按照 曲廉卿 的已成功,以下正文: 最近研究了一下NLog的使用方式,简单的入了一下门. 实现的功能,对于不 ...
- EF Core使用SQL调用返回其他类型的查询 ASP.NET Core 2.0 使用NLog实现日志记录 CSS 3D transforms cSharp:use Activator.CreateInstance with an Interface? SqlHelper DBHelper C# Thread.Abort方法真的让线程停止了吗? 注意!你的Thread.Abort方法真
EF Core使用SQL调用返回其他类型的查询 假设你想要 SQL 本身编写,而不使用 LINQ. 需要运行 SQL 查询中返回实体对象之外的内容. 在 EF Core 中,执行该操作的另一种方法 ...
- ELK +Nlog 分布式日志系统的搭建 For Windows
前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询 SELECT * FROM `LhzxUsers` WHERE UserN ...
- NetCore2.2使用Nlog自定义日志写入路径配置方式
在一些特定场景的业务需求下,日志需要写入到不同的路径下提供日志分析.第一种:默认Nlog可以通过日志级别来区分路径,——优点是不需要额外配置,开箱即用——缺点是不够灵活,如果超过级别数量,则不满足需求 ...
随机推荐
- oeasy教您玩转vim - 72 - # 缩写abbreviation
缩写abbreviation 回忆上次折叠的细节 这次了解到了:mkview.:loadview 保存和加载视图 可以把当前的状态保存下来 可以在 viewoption 中配置保存选项,设置哪些需 ...
- Sonar 扫描之SonarScanner介绍
Sonar扫描之SonarScanner介绍 SonarScanner用于在构建系统没有指定scanner时使用. 项目配置 在你的项目根目录中创建一个名为 sonar-project.propert ...
- Known框架实战演练——进销存框架搭建
本文介绍如何使用Known开发框架搭建进销存管理系统的项目结构,以及开发前的一些配置和基础代码. 项目代码:JxcLite 开源地址: https://gitee.com/known/JxcLite ...
- hbuilderx生成ios证书和上架全教程
现在很多公司都使用uniapp作为底层框架来开发app应用,而uniapp的开发工具hbuilderx云打包的时候,需要证书和证书profile文件. 假如是ios应用,则还需要上架到appstore ...
- 【转载】SLAM领域的优秀作者与实验室汇总
原地址: https://blog.csdn.net/m0_37874102/article/details/114365837 总结一些之前看过的SLAM(VO,VIO,建图)文献所发表的实验室和作 ...
- Google在放弃Tensorflow后推出Google版本的Pytorch框架 —— Jax
相关: 谷歌放弃TensorFlow了 虽然在某种上来说,Google已经放弃了Tensorflow框架,但是由于Tensorflow的历史地位所造成的遗留应用,因此Tensorflow框架已经处于维 ...
- 所在单位近日购入Dell poweredge T640型号服务器,安装Ubuntu18.04.5 server操作系统,服务器万兆网卡,网线连接到千兆交换机上,不能识别网卡——解决方案
如题目所说: 所在单位近日购入Dell poweredge T640型号服务器,安装Ubuntu18.04.5 server操作系统,服务器万兆网卡,网线连接到千兆交换机上,不能识别网卡. 服务器 ...
- 一个好主板对CPU超频的现实意义————一次超频经历 (z390ws华硕工作站主板+i7-9700k CPU ,Ubuntu18.04.5系统,8核心超频 5.2Ghz以上,单核心满负荷运转可以稳定运行10多分钟后才重启)
本人于今年2020年1月份在某宝上购买了一款workstation主板,也就是工作站主板,传说中的华硕Z390WS主板(购入价格为3900元),由于当时手里有些小钱,又弄了一个大蝴蝶1350w的电源( ...
- 自然语言处理:通过API调用各大公司的机器翻译开放平台
国内大公司做机器翻译做的比较好的有讯飞和百度,这里给出这两个公司机器翻译的开放平台API的介绍: 讯飞开放平台: 链接:https://www.xfyun.cn/doc/nlp/xftrans_new ...
- 修复 Longhorn 卷挂载失败(”CentOS 7.6-'fsck' found errors on device“)
查看 Pod 日志 kubectl describe po clickhouse-0 -n clickhouse ...... #Events: # Type Reason Age From Mess ...