.Net Core 8 NLog连接PostgreSQL数据库
最近在做的项目需要把日志记录到本地和数据库,我使用的是NLog,主要参考博文链接:.NET项目中NLog的配置与使用 - 追逐时光者 - 博客园,下面是NLog连接PostgreSQL数据库的步骤,网上关于NLog连接PostgreSQL数据库的实例比较少,大多数都是mysql的。
1、创建Nlog.config配置文件,将下面配置文件内容复制进去,里面包含了存储数据库和本地。
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
>
<targets>
<target xsi:type="Database"
name="pgsql"
dbProvider="Npgsql.NpgsqlConnection,Npgsql"
connectionString="database=postgres;server=localhost;port=5432;user id=postgres;password=123456;">
<commandText>
INSERT INTO syslog (machineName, logged, level, message,logger, callSite, exception)
VALUES (@machineName, @logged, @level, @message, @logger, @callSite, @exception)
</commandText>
<parameter name="@machineName" layout="${machinename}"/>
<parameter name="@logged" layout="${date}"/>
<parameter name="@level" layout="${level}"/>
<parameter name="@message" layout="${message}"/>
<parameter name="@logger" layout="${logger}"/>
<parameter name="@callSite" layout="${callsite}"/>
<parameter name="@exception" layout="${exception:tostring}"/>
</target>
<target name="asyncFile" xsi:type="AsyncWrapper">
<!--项目日志保存文件路径说明fileName="${basedir}/保存目录,以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"-->
<target name="log_file" xsi:type="File"
fileName="${basedir}/ProjectLogs/${shortdate}/${logger}-${level}-${shortdate}.txt"
layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"
archiveFileName="${basedir}/archives/${logger}-${level}-${shortdate}-{#####}.txt"
archiveAboveSize="102400"
archiveNumbering="Sequence"
concurrentWrites="true"
keepFileOpen="false" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="pgsql"/>
<logger name="Microsoft.*" minlevel="Info" writeTo="" final="true" />
<logger name="*" minlevel="Info" writeTo="asyncFile" />
<logger name="*" minlevel="Warn" writeTo="colorConsole" />
</rules>
</nlog>
2、安装nuget包
- NLog
- NLog.Database
- Npgsql
3、创建LoggerHelper
/// <summary>
/// nLog使用帮助类
/// </summary>
public class LoggerHelper
{
/// <summary>
/// 实例化nLog,即为获取配置文件相关信息(获取以当前正在初始化的类命名的记录器)
/// </summary>
private readonly NLog.Logger _logger = LogManager.GetCurrentClassLogger(); private static LoggerHelper _obj; public static LoggerHelper Logger
{
get => _obj ?? (new LoggerHelper());
set => _obj = value;
} #region Debug,调试
public void Debug(string msg)
{
_logger.Debug(msg);
} public void Debug(string msg, Exception err)
{
_logger.Debug(err, msg);
}
#endregion #region Info,信息
public void Info(string msg)
{
_logger.Info(msg);
} public void Info(string msg, Exception err)
{
_logger.Info(err, msg);
}
#endregion #region Warn,警告
public void Warn(string msg)
{
_logger.Warn(msg);
} public void Warn(string msg, Exception err)
{
_logger.Warn(err, msg);
}
#endregion #region Trace,追踪
public void Trace(string msg)
{
_logger.Trace(msg);
} public void Trace(string msg, Exception err)
{
_logger.Trace(err, msg);
}
#endregion #region Error,错误
public void Error(string msg)
{
_logger.Error(msg);
} public void Error(string msg, Exception err)
{
_logger.Error(err, msg);
}
#endregion #region Fatal,致命错误
public void Fatal(string msg)
{
_logger.Fatal(msg);
} public void Fatal(string msg, Exception err)
{
_logger.Fatal(err, msg);
}
#endregion
4、生成日志记录表
CREATE TABLE public.syslog (
machinename varchar(50) NOT NULL,
"logged" varchar(50) NOT NULL,
"level" varchar(50) NOT NULL,
message text NOT NULL,
logger varchar(250) NULL,
callsite text NULL,
"exception" text NULL
);
5、在你需要记录日志的地方调用
LoggerHelper.Info("测试")
项目源码地址:https://github.com/cplmlm/ManagementSystem、https://gitee.com/cplmlm/ManagementSystem
.Net Core 8 NLog连接PostgreSQL数据库的更多相关文章
- ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...
- 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...
- Entity Freamwork 6连接PostgreSql数据库
原文 Entity Freamwork 6连接PostgreSql数据库 开发环境 VS 2015 Update 1 Postgre Sql 9.4 使用过程 1.使用Nuget在项目中添加对E ...
- Abp.NHibernate连接PostgreSQl数据库
Abp.NHibernate动态库连接PostgreSQl数据库 初次接触Abp框架,其框架中封装的操作各类数据的方法还是很好用的,本人还在进一步的学习当中,并将利用abp.NHibernate类库操 ...
- typescript-koa-postgresql 实现一个简单的rest风格服务器 —— 连接 postgresql 数据库
接上一篇,这里使用 sequelize 来连接 postgresql 数据库 1.安装 sequelize,数据库驱动 pg yarn add sequelize sequelize-typescri ...
- msf连接PostgreSQL数据库
一.启动PostgreSQL服务######################################################################?root@root:~# ...
- powerdesigner连接postgresql数据库生成pdm及word文档
1.准备软件: powerdesigner165与postgresql的驱动:psqlodbc_11_01_0000 2.安装并破解完成powerdesigner165 参看链接:https://ww ...
- 建立安全SSL连接PostgreSQL数据库服务器
建立安全SSL连接PostgreSQL数据库服务器当前物联网的挑战之一就是提供最高的安全级别.这就是为什么需要开启SSL连接到 PostgreSQL. 当你想要安全的存储数据到PostgreSQL数据 ...
- EntityFramewok Core 1.1连接MSSql数据库详解
最近在研究ASP.NET Core,其中就用到了Entity Framework Core,对于Entity Framework Core连接SqlServer数据库,使用Code Frist创建数据 ...
- python连接postgresql数据库
python可以通过第三方模块连接postgresql. 比较有名的有psycopg2 和python3-postgresql (一)psycopg2 ubuntu下安装 sudo apt-get ...
随机推荐
- 前端将医学影像DCM转换为Base64 图像数据的方法
第一步 下载dicom-parser.js库 npm安装: npm install dicom-parser 第二步 封装dcm转换base64图像数据的方法 /** * dicomToBase64. ...
- 无法直连 SSH?一招反向SSH搞定内网到公网的远程连接问题
作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 在校园网或者是家里的内网中,我们常常会遇到一个头疼的问题:两台设备明明都接入了网络,但当我离开内网之后却无法再远 ...
- VS2019+CUDA12.5入门
通常先装vs后装cuda,cuda会自动集成到vs中.而如果先装cuda,后装vs则需要进行额外的配置. 1 VS新建项目中增加CUDA选项 1.1 关闭vs2019(如果已经打开)1.2 检查CUD ...
- 6-nn.Module模块使用
1. nn.Module模块使用 ① nn.Module是对所有神经网络提供一个基本的类. ② 我们的神经网络是继承nn.Module这个类,即nn.Module为父类,nn.Module为所有神经网 ...
- 4-torchvision数据集使用
1. torchvision数据集介绍 ① torchvision中有很多数据集,当我们写代码时指定相应的数据集指定一些参数,它就可以自行下载. ② CIFAR-10数据集包含60000张32×32的 ...
- Linux在线安装MySQL5.7
Linux在线安装MySQL 5.7及编码密码修改 先检测系统是否自带安装mysql yum list installed | grep mysql 若出现mysql相关信息,卸载原始版本 yum - ...
- Go协程简单学习
什么是协程? 协程类似于线程,但是比线程更加轻量.一个程序启动会占用一个进程 而一个进程可以拥有多个线程 ,一个线程可以拥有多个协程. 一个进程至少包含一个主线程,一个主线程可以有更多的子线程. 线程 ...
- java---前端知识补充
css的定位 相对定位: 相对定位是相对于元素原本的位置进行移动的. 使用方式: position:relative; 绝对定位: 绝对定位是相对于整个页面而言. position:absolute; ...
- Luogu P8800 [蓝桥杯 2022 国 B] 卡牌 题解
P8800 [蓝桥杯 2022 国 B] 卡牌 我们看到这样一句话: 请问小明最多能凑出多少套牌? 很明显用贪心可以做了. 首先要理解一个东西,卡牌套数等于最少的卡牌牌数.因为一套卡牌需要所有卡牌各一 ...
- 【7】Tarjan学习笔记
前言 WFLS 暑假集训 Day 5 Day 6 Day 8 Day 9 Tarjan 是个巨佬,快来膜拜他 orz. 长文警告:本文一共 \(1092\) 行,请合理安排阅读时间. 强连通分量 强连 ...