C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布

  • 一、 MVC含义
  • 二、数据传输
    • 1、控制器向视图传输数据
  • 三、日志组件Log4net
    • 1、Nuget程序包引入
      • 第一步:寻找log4net 程序包进行安装;
      • 第二步:新建文件夹Log4net,添加Log4net.config配置文件
      • 第三步:Log4net.config设置为始终复制
      • 第四步:在Program.cs中配置日志包
    • 2、使用Log4net记录文本日志
    • 3、如何把日志记录到数据库
    • 4、Log4net 日志级别配置
      • 1、日志级别的日志调用
      • 2、Log4net 日志级别在Log4net.config中的配置
  • 四、日志组件NLog
    • 1、NLog程序包的引入
      • 第一步:在Nuget找到程序包进行安装(NLog.Web.AspNetCore)
      • 第二步:新建log4net(什么名称都行)文件夹,添加NLog.config配置文件
      • 第三步:设置NLog.config为始终复制
      • 第四步:在Program.cs中配置日志包
    • 2、怎么使用Nlog记录日志
    • 3、怎么使用Nlog 将日志写入数据库
  • 五、Asp.NetCore6项目多种启动方式
    • 1、脚本启动
    • 2、VS2022启动
      • 2.1 控制台启动
      • 2.2 IIS Express
  • 六、IIS部署 .Net Core 程序
    • 1 IIS安装及配置
      • 1.1 IIS安装
      • 1.2 依赖组件下载及配置
        • 1.2.1 依赖组件下载
        • 1.2.2 配置AspNetCoreModuleV2
    • 2 部署.Net Core 应用程序
      • 2.1 项目的编译
      • 2.2 IIS 发布项目
  • 七、Liux 配置及程序部署
    • 1 Liux环境配置
    • 2 应用程序部署到Liux环境
      • 2.1 应用程序的编译
        • 2.1.1 修改launchSettings.json配置文件中通过脚本启动的路径
        • 2.1.2 程序发布


connected Services 服务依赖(第三方)
Properties 文件下 launchSettings.json 项目启动配置文件
wwwroad 存放静态文件
依赖项 管理Nuget程序包
appsettings.json 配置文件

一、 MVC含义

C 业务逻辑运算–调用其他的服务做业务逻辑
M 实体对象,保存数据,数据传输
V 视图,表现层

二、数据传输

1、控制器向视图传输数据

//控制器中方法的代码public IActionResult Index(){ViewBag.User1 = "测试1";ViewData["User2"] = "测试2";TempData["User3"] = "测试3";HttpContext.Session.SetString("User4", "测试4");Object User5 = "测试5";return View(User5);}
// **使用 HttpContext.Session时需要在Program.cs类中注册**
{builder.Services.AddSession();//注册session
}
app.UseSession();//new  session//视图接收数据
<input value="@ViewBag.User1" />
<input value="@ViewData["User2"]" />
<input value="@TempData["User3"]" />
<input value="@Context.Session.GetString("User4")" />
<input value="@Model" /

三、日志组件Log4net

1、Nuget程序包引入

第一步:寻找log4net 程序包进行安装;

第二步:新建文件夹Log4net,添加Log4net.config配置文件

Log4net.config 下载链接: link 提取码:tply

第三步:Log4net.config设置为始终复制

第四步:在Program.cs中配置日志包

//配置日志包
{//NuGet包引入2项//1.Log4Net//2.Microsoft.Extensions.Logging.Log4Net.AspNetCorebuilder.Logging.AddLog4Net("Log4net/Log4net.config");//单独的配置文件需要配置文件路径,在项目下就不用配置
}

2、使用Log4net记录文本日志

//注意日志存放地址public class FirstController : Controller{//日志private readonly ILogger<FirstController> _logger;private readonly ILoggerFactory _logFactory;public FirstController(ILogger<FirstController> logger ,ILoggerFactory loggerFactory) {this._logger = logger;this._logger.LogInformation($"{this.GetType().Name},具体日志记录信息1");this._logFactory = loggerFactory;}public IActionResult Index(){//日志/*     !--控制级别,由低到高:ALL | DEBUG | INFO | WARN | ERROR | FATAL | OFF比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录如果没有定义LEVEL的值,则缺省为DEBUG-- > *///第一种this._logger.LogInformation($"{this.GetType().Name},具体日志记录信息2");//第二种ILogger<FirstController> logger2=this._logFactory.CreateLogger<FirstController>();logger2.LogInformation($"{this.GetType().Name},执行记录");logger2.LogError($"{this.GetType().Name},Error信息");logger2.LogDebug($"{this.GetType().Name},Debug信息");}}

3、如何把日志记录到数据库

1、项目引用 System.data.Sqlclient (数据库不同引入不同);
2、在Log4net.config 的中添加appender 具体为写入数据库日志配置(注意数据库用户和密码),还需在中增加appender

<log4net><!--Log4net日志写入各数库配置参考地址:https://logging.apache.org/log4net/release/config-examples.html --><!--写入sqlserver库日志配置--><appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender"><bufferSize value="100" /><connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /><connectionString value="data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]" /><commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /><parameter><parameterName value="@log_date" /><dbType value="DateTime" /><layout type="log4net.Layout.RawTimeStampLayout" /></parameter><parameter><parameterName value="@thread" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%thread" /></layout></parameter><parameter><parameterName value="@log_level" /><dbType value="String" /><size value="50" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%level" /></layout></parameter><parameter><parameterName value="@logger" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%logger" /></layout></parameter><parameter><parameterName value="@message" /><dbType value="String" /><size value="4000" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message" /></layout></parameter><parameter><parameterName value="@exception" /><dbType value="String" /><size value="2000" /><layout type="log4net.Layout.ExceptionLayout" /></parameter></appender><root><!--写入sqlserver库日志配置--><appender-ref ref="AdoNetAppender_SqlServer" /><level value="DEBUG" /></root>
</log4net>

4、Log4net 日志级别配置

1、日志级别的日志调用

ILogger<FirstController> logger2=this._logFactory.CreateLogger<FirstController>();logger2.LogInformation($"{this.GetType().Name},Info记录普通日志");logger2.LogDebug($"{this.GetType().Name},Debug记录调试日志");logger2.LogError($"{this.GetType().Name},Error记录异常日志");logger2.LogWarning($"{this.GetType().Name},Warn记录警告日志");logger2.LogTrace($"{this.GetType().Name},Trace记录");logger2.LogCritical($"{this.GetType().Name},Critical记录严重日志");

2、Log4net 日志级别在Log4net.config中的配置

<root><!--Log4net日志级别配置--><!--控制器级别由低到高 ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--><!--当level value="ALL" 记录所有日志--><!--当level value="OFF" 不会记录任何日志--><!--当level value="FATAL" (FATAL非常严重的问题日志)只记录FATAL日志--><!--当level value="ERROR" (ERROR异常日志)只记录ERROR FATAL日志--><!--当level value="WARN" (WARN警告日志)只记录WARN ERROR FATAL日志--><!--当level value="DEBUG"(DEBUG调试状态) 只记录DEBUG WARN ERROR FATAL日志--><!--当level value="INFO"(INFO普通日志) 只记录INFO WARN ERROR FATAL日志--><level value="ALL" />
</root>

四、日志组件NLog

1、NLog程序包的引入

第一步:在Nuget找到程序包进行安装(NLog.Web.AspNetCore)

第二步:新建log4net(什么名称都行)文件夹,添加NLog.config配置文件

NLog.config配置文件 下载
提取码:tply

第三步:设置NLog.config为始终复制

第四步:在Program.cs中配置日志包

#region NLog
{//需要引入命名空间 using NLog.Web;//Nuget:引入 NLog.Web.AspNetCorebuilder.Logging.AddNLog("Log4net/NLog.config");//单独的配置文件需要配置文件路径,在项目下就不用配置
}
#endregion

2、怎么使用Nlog记录日志

 public class FirstController : Controller{//日志private readonly ILogger<FirstController> _logger;private readonly ILoggerFactory _logFactory;public FirstController(ILogger<FirstController> logger ,ILoggerFactory loggerFactory) {this._logger = logger;this._logger.LogInformation($"{this.GetType().Name},具体日志记录信息1");this._logFactory = loggerFactory;}public IActionResult Index(){//日志/*     !--控制级别,由低到高:ALL | DEBUG | INFO | WARN | ERROR | FATAL | OFF比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录如果没有定义LEVEL的值,则缺省为DEBUG-- > *///第一种this._logger.LogInformation($"{this.GetType().Name},具体日志记录信息2");//第二种ILogger<FirstController> logger2=this._logFactory.CreateLogger<FirstController>();logger2.LogInformation($"{this.GetType().Name},执行记录");logger2.LogError($"{this.GetType().Name},Error信息");logger2.LogDebug($"{this.GetType().Name},Debug信息");}}

3、怎么使用Nlog 将日志写入数据库

1、项目引用 System.data.Sqlclient (数据库不同引入不同);
2、数据库日志表结构

 INSERT INTO [SystemLogs](createDate, origin,logLevel,message,stackTrace)VALUES(@createDate,@origin,@logLevel,@message,@stackTrace)

五、Asp.NetCore6项目多种启动方式

1、脚本启动

dotnet run

2、VS2022启动

2.1 控制台启动

使用控制台启动,将在地址栏中弹出一个控制台,项目将调用Properties→launchSettings.json中的配置端口

2.2 IIS Express

启动时直接调动DLL文件,项目将调用Properties→launchSettings.json中的配置端口

六、IIS部署 .Net Core 程序

1 IIS安装及配置

1.1 IIS安装

打开启用或关闭Windows功能,将Internet Information Services下面全部勾选安装

1.2 依赖组件下载及配置

1.2.1 依赖组件下载

IIS 部署需要安装ASP.NET Core Module v2 官网地址: 访问
建议下载Windows 下的Hosting Bundle ( 网盘资源 提取码:tply)进行安装

1.2.2 配置AspNetCoreModuleV2

打开IIS 点击根目录,点击 模块 ,点击配置模板,找到 AspNetCoreModuleV2 进行添加

2 部署.Net Core 应用程序

2.1 项目的编译

第一步:选中项目,点击发布

第二步:有6种发布方式,这里选择了文件夹的方式

第三步:点击发布

2.2 IIS 发布项目

打开IIS,点击添加网站,配置应用程序地址及其他信息。

七、Liux 配置及程序部署

1 Liux环境配置

1、准备CentOS–或者Liux云服务器
2、准备文件传输工具:建议MobaXterm
3、保证Liux服务器可以直接访问 (本地 ping)
4、安装.net 6运行环境

//依次执行命令
yum update
yum install net-tools注册镜像地址
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm安装ASP.NET Core SDK
sudo yum update
sudo yum install dotnet-sdk-6.0关闭防火墙
systemctl disable firewalld

2 应用程序部署到Liux环境

2.1 应用程序的编译

2.1.1 修改launchSettings.json配置文件中通过脚本启动的路径

2.1.2 程序发布

第一步 :VS选择程序,点击发布,发布方式选择文件夹
第二步:将编译后的文件通过MobaXterm工具直接拖到root目录下
第三步:通过CD 命令进入程序文件目录下
第四步:执行dotnet *.dll --urls=http://192.168.1.1:7879 & 命令可以启动( nohup dotnet *.dll --urls=http://192.168.1.1:7879 & 可以做到守护进程)

Asp.NET6练习资源: 百度网盘下载提取码:tply

C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布相关推荐

  1. ASP.NET MVC的最佳日志记录库

    目录 介绍 4个日志记录库 log4net Log4net记录文本文件中 Log4net记录到数据库中 NLOG Nlog日志记录在文本文件中 NLog日志记录到数据库中 Serilog Serilo ...

  2. 在ASP.NET MVC应用中开发插件框架(中英对照)

    [原文] Developing a plugin framework in ASP.NET MVC with medium trust [译文] 在ASP.NET MVC应用中开发一个插件框架 I'v ...

  3. mysql日志输出到syslog_在chroot环境下将MySQL日志输出到syslog

    好久没写博客了,这几个月一直在学习nodejs,angularjs,做一些前端开发,目前还是学习阶段,等有一些体会再来分享. 这两天碰到的一个问题是,我们的产品给客户后,客户要统一管理日志,MySQL ...

  4. php日志文件过大,Windows服务器系统下Apache的error.log文件过大的解决办法

    今天打开我的电脑的时候,突然发现硬盘空间少了很多,仔细检查各个文件夹大小后发现,Apache文件夹的log目录占用了将近7个G的空间,把文件夹下的error.log删除重启Apache发现,error ...

  5. Windows 2003环境下IIS下ASP+ACCESS的配置方法

    很多初学者刚从网上下载一个ASP网站或程序,都不知道如何运行,ASP并不像html一样双击就可以用IE打开,看到网页内容,ASP是微软的WEB服务器端脚本,代码经过服务器编译后输出html到客户端的浏 ...

  6. 离线安装vscode插件(没有网络的环境下安装插件)

    使用场景 大家或许会使用vscode连接远程服务器,或许会遇到服务器无法连接外网,从而无法安装vscode常用插件. 如果满足条件,本教学将会帮你解决这个问题. 方法 总共分为三步,首先下载插件文件( ...

  7. my97显示服务器时间,封装Web Uploader 上传插件、My97DatePicker、百度 编辑器 的使用 (ASP.NET MVC)...

    Web Uploader: WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优 ...

  8. 看一下基于ASP.NET MVC的开源社区项目Orchard

    昨天介绍了基于ASP.NET MVC的框架Catharsis,今天给大家介绍的是基于ASP.NET MVC的一个开源社区项目Orchard,本篇主要介绍一下Orchard是什么,如何下载安装以及安装过 ...

  9. 一起谈.NET技术,在Mono 2.8上部署ASP.NET MVC 2

    我们知道Mono 2.8对ASP.NET MVC 2的完全支持,下面我们就来测试下在Mono 2.8上部署ASP.NET MVC 2应用程序.我的环境是Opensuse 11.3,通过以下命令部署好M ...

最新文章

  1. 第四周项目二-太乐了
  2. GIS专业核心课程电子教材配套实验数据汇总(持续更新)
  3. css 背景属性 0302
  4. 使用maven-war-plugin 打包时排除不需要的文件
  5. centos 安装tmux
  6. 拓端tecdat|python缺失值处理案例分析:泰坦尼克数据
  7. 开启Github之旅
  8. cadence allegro - 焊盘命名规则 -unfinished -unfinished-unfinished
  9. JavaScript里的闭包(摘自JavaScript高级程序设计)
  10. 深度相机原理及坐标系转换
  11. 数据链路层 - MTU 、ARP协议
  12. Ubuntu系统中IPFS环境的配置
  13. yolo数据集剪裁:切割目标框并将该框内的其他目标一并提取并转为可用数据集
  14. html个人中心网页,个人中心页面.html
  15. 怎样把视频中的音频提取成mp3?
  16. windows Outlook邮箱无法连接服务器
  17. 计算机应用基础本科试题及答案,计算机应用基础课程(本科)网考模拟试题
  18. MYSQL 唯一约束
  19. Chapter1 Numpy基础
  20. 新姿势 - 海贼王之伟大航路

热门文章

  1. 手机的小窗口怎么弄_手机B站怎么小窗口播放 即刻开启小窗口模式
  2. 为什么区块链宠物得到这么多资本家的青睐?
  3. 换电池?换新机?换系统?苹果式营销的freestyle!
  4. 2023年上半年全国软考报名时间及地区更新
  5. 使用cmd指令切换windows显示模式
  6. 微信红包照片来了,用变色龙隐形二维码赚点零花钱
  7. 服务器如何检测当前网站php版本,以及修改php上传附件参数
  8. 愿有情人终成眷属,执手前走共度一生
  9. 基于ssm框架的汽车配件管理系统
  10. 【收藏+原创】商业网站