WPF中Nlog的使用--能够提取Nlog的日志内容,并定义使用

ops/2024/9/24 14:22:42/

背景

使用Nlog日志进行本地文件输出,以及进行定时清理删除参考其他文章

在用户本地计算机上进行Nlog输出,或者使用Web的Http的Post请求输出到后端数据库使用File或者Web的数据类型就可以了,但是我这里希望把我的日志进行输出到自己的云端,但是存在如下情况:

1、用户在一天中多次登录退出,或者从不进行退出操作,这样子使用退出登录事件触发上传用户的本地log文件就不是可行的

2、同时在用户退出的时候进行本地log文件上传会导致退出过慢(上传事件),或者用户直接关闭计算机导致的上传失败

3、同时在用户进行登录成功行为的时候进行上床上次的登录事件导致的本次log上传不及时,排查问题的延后性在用户体验上是不合规的

4、在用户一段事件不使用软件的时候进行本地的Log上传,这个是一个相对而言正常的方案,但是我不想这么搞,页面太多,判断失去焦点太麻烦

以上是针对于单纯的传输文件思考得出的实行方案的不可行性。
如下就希望能够完成:
1、用户数据的实时上传,
2、云端动态创建用户的实时log文件,进行log区分

实现方案

1、实现使用DateTime.Now.ToString(“yyyy-mm-dd”)在云端实现事件命名存储文件的方案,这样用来作为路径就可以进行云端动态存储按天的Log文件的基础,
2、云端实现可以进行追加上传数据的功能,这样子在上传数据的过程中,指明追加的文件名称,既可以将每条数据进行动态存储
3、本地实现的方案:将每一条本地的Log数据进行提取出来,追加上传到云端进行本地Log的实时上传

具体实现代码

首先创建自己的targettype类型:

using NLog;
using NLog.Targets;
using System.Windows;[Target("MessageBoxTarget")]
public sealed class MessageBoxTarget<

http://www.ppmy.cn/ops/28241.html

相关文章

【氮化镓】GaN 器件的高温运行

《High Temperature Operation of E-Mode and D-Mode AlGaN/GaN MIS-HEMTs With Recessed Gates》&#xff0c;由HANWOOL LEE, HOJOON RYU, JUNZHE KANG, 和 WENJUAN ZHU (IEEE高级会员) 四位作者共同撰写&#xff0c;发表在《IEEE Journal of the Electron Devices Society》上…

【STM32F407+CUBEMX+FreeRTOS+lwIP之UDP记录】

STM32F407CUBEMXFreeRTOSlwIP之UDP记录 基本信息cubemx配置GPIONVICRCCSYSETHFREERTOSlwIP UDP&#xff08;SOCKET&#xff09;效果 UDP广播&#xff08;SOCKET&#xff09;效果 UDP组播&#xff08;SOCKET&#xff09;cubemx注意以下ethernetif.c效果 可参考正点原子和野火的手…

ansible-playbook离线升级centos内核

目录 概述实践ansible目录结构关键代码执行效果 结束 概述 内核离线包官网下载地址如下&#xff1a; 地址 实践 ansible目录结构 如对 ansible 不熟悉&#xff0c;离线包下载有问题&#xff0c;请至此地址下载&#xff0c;按本文操作可直接使用。 相关文章链接如下 文章地…

Android APP转成launcher

一、背景 使用场景&#xff0c;需要开机的时候&#xff0c;自动启动app&#xff0c;解决方案为将Android app转成 launcher app&#xff0c;可实现效果。 二、实现 在app入口activity 的配置文件&#xff08;AndroidManifest.xml&#xff09;对应位置&#xff0c;添加 <cat…

Golang | Leetcode Golang题解之第61题旋转链表

题目&#xff1a; 题解&#xff1a; func rotateRight(head *ListNode, k int) *ListNode {if k 0 || head nil || head.Next nil {return head}n : 1iter : headfor iter.Next ! nil {iter iter.Nextn}add : n - k%nif add n {return head}iter.Next headfor add > …

wpf 按钮禁用样式

在WPF中&#xff0c;要为按钮创建一个禁用样式&#xff0c;需要在资源字典中定义一个Style&#xff0c;该样式将应用于Button控件的IsEnabled属性为False时的状态。 以下是一个简单的例子&#xff1a; <Style TargetType"Button" x:Key"NormalButtonStyle&…

制作一个RISC-V的操作系统十五-软件定时器

文章目录 定时器分类定时器相关分类软件定时器设计初始化创建删除触发流程图形示意 优化代码 定时器分类 硬件定时器&#xff1a;由硬件频率和触发限制的大小决定&#xff0c;只有一个&#xff0c;精度高 软件定时器&#xff1a;基于硬件定时器实现&#xff0c;精度大于等于硬…

ubuntu下安装配置python3.11

方案1 添加仓库&#xff1a; $ sudo add-apt-repository ppa:deadsnakes/ppa $ sudo apt update $ sudo apt install python3.11然后查看有多少个python版本已经安装了&#xff1a; ls -l /usr/bin/python*python2.7,python 3.8 ,python 3.11. 然后&#xff0c;设置系统默认…