欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET Core 2.0 WebApi全局配置及日志实例

程序员文章站 2022-04-29 12:47:47
最新在将原来写的一些webserivce转换为webapi,直接就用了asp.net core 2.0的框架,在使用中,发现的与原有的asp.net不同的地方,通过搜索已经...

最新在将原来写的一些webserivce转换为webapi,直接就用了asp.net core 2.0的框架,在使用中,发现的与原有的asp.net不同的地方,通过搜索已经慢慢解决,记录下来备用。

一、全局配置

在asp.net中,全局变更配置写在web.config中,如下所示

<?xml version="1.0"?>
<configuration>
<connectionstrings>
 <add name="conn" connectionstring="data source=localhost;initial catalog=helloworld;integrated security=true"/>
 </connectionstrings>
 <appsettings>
 <add key="app_key" value="helloworld" />
 <add key="app_secret" value="1234567890abcdef" />
 </appsettings>
</configuration>

在asp.net core 2.0 webapi中,已经没有了web.config文件,查了一些资料,可以把全局变量配置写在appsetting.json文件中,如下所示:

{
 "connectionstrings": {
 "conn": "data source=localhost;initial catalog=helloworld;integrated security=true"
 }
 "appsettings": {
 "app_key": "helloworld",
 "app_secret": "1234567890abcdef"
 }
}

这样一来,在程序中就可以对全局变量配置进行引用了。

使用appsetting.json,全局变量可以设置的更为复杂,具体的方法可以参考文后的参考文献。

二、记录日志

以前asp.net的时候,日志都是用nlog进行记录,现在转换到了core 2.0,也准备继续使用nlog,在使用中,发现和以前的有也所不同。

首先,在nuget中获取nlog.web.aspnetcore包,

然后将startup.cs文件的代码进行修改

public void configure(iapplicationbuilder app, ihostingenvironment env)
//修改为
public void configure(iapplicationbuilder app, ihostingenvironment env, iloggerfactory loggerfactory)

并在configure函数中,加上以下语句:

loggerfactory.addnlog();
app.addnlogweb();
loggerfactory.configurenlog(“nlog.config”);

记得要在文件头先引用using nlog.web和using nlog.extensions.logging;

增加一个"web配置文件",文件名为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">
 <targets>
  <target xsi:type="file" name="logfile" filename="${basedir}/logs/${shortdate}.log" keepfileopen="false" layout="${longdate}|${callsite:filename=true}|${uppercase:${level}}|${message} ${exception}" />
  <target xsi:type="file" name="debugfile" filename="${basedir}/logs/${shortdate}_debug.log" keepfileopen="false" layout="${longdate}|${callsite:filename=true}|${uppercase:${level}}|${message} ${exception}" />
 <target xsi:type="file" name="errfile" filename="${basedir}/logs/${shortdate}_error.log" keepfileopen="false" layout="${longdate}|${callsite:filename=true}|${uppercase:${level}}|${message} ${exception}" />
 </targets>
 <rules>
 <logger name="*" level="debug" writeto="debugfile" />
  <logger name="*" level="error" writeto="errfile" />
 <logger name="*" minlevel="trace" writeto="logfile" />
 </rules>
</nlog>

然后在程序中就可以开始调用日志功能了。

二个功能的demo代码如下:

using system;
using system.io;
using microsoft.extensions.configuration;
using nlog.extensions.logging;
using nlog.web;
public class program
{
 public static iconfigurationroot configuration { get; set; }
 public static nlog.logger log = nlog.logmanager.getcurrentclasslogger();
 public static void configandlog()
 {
  var builder = new configurationbuilder()
   .setbasepath(directory.getcurrentdirectory())
   .addjsonfile("appsettings.json");
  configuration = builder.build();
  string app_key = configuration["appsettings:app_key"];
  string coon = configuration["connectionstrings:conn"];
  log.debug("数据库连接为:" + conn);
  return;
 }
}

以上这篇asp.net core 2.0 webapi全局配置及日志实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。