首页 > 其他分享 >日志 配置文件 依赖注入 系统自动日志 控制台应用

日志 配置文件 依赖注入 系统自动日志 控制台应用

时间:2024-05-08 23:33:07浏览次数:14  
标签:控制台 Service 配置文件 public Wechat CrawlerNew using 日志 logger

日志级别学习

// Trace:0,包含最详细的消息。 这些消息可能包含敏感的应用数据。
// Debug:1,用于调试和开发。
// Information:2,一般用于跟踪系统的日志。
// Warning:3,一般用于记录异常事件或意外事件。
// Error:4,一般用于记录无法处理的异常。
// Critical:5,需要马上处理的失败,比如数据丢失、磁盘控件不足。
// None:6,关闭日志打印。
// System.Console.WriteLine("get html by url");
_logger.LogTrace("Trace");
_logger.LogDebug("Debug");
_logger.LogInformation("Information");
_logger.LogWarning("Warning");
_logger.LogError("Error");
_logger.LogCritical("Critical");

Wechat.CrawlerNew/Wechat.App/Program.cs


using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Wechat.Service.Browser;
using Wechat.Service.Topic;

// get settings from appsettings.json 
var config = new ConfigurationBuilder()
    .SetBasePath(AppContext.BaseDirectory)
    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
    .Build();

HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);

// add logger
builder.Services.AddLogging(builder =>
{
    builder.AddConfiguration(config.GetSection("Logging"));
    builder.AddConsole();
});

builder.Services.AddSingleton<ITopicService, TopicService>();
builder.Services.AddSingleton<IBrowserService, BrowserService>();

using IHost host = builder.Build();

// get service from IServiceProvider
var topicService = host.Services.GetRequiredService<ITopicService>();
topicService.ExtractLinksFromUrl("World");









// host.Run();
// await host.RunAsync();
// host.Dispose();


Wechat.CrawlerNew/Wechat.App/appsettings.Development.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug",
      "Microsoft.AspNetCore": "Warning"
    }
  }
}

Wechat.CrawlerNew/Wechat.App/Wechat.App.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <ItemGroup>
    <ProjectReference Include="..\Wechat.Entity\Wechat.Entity.csproj" />
    <ProjectReference Include="..\Wechat.Service\Wechat.Service.csproj" />
  </ItemGroup>

 <ItemGroup>
     <None Update="nlog.config" CopyToOutputDirectory="Always" />
 </ItemGroup>

  <ItemGroup>
    <PackageReference Include="AngleSharp" Version="1.2.0-beta.410" />
    <PackageReference Include="HtmlAgilityPack" Version="1.11.60" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
    <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
    <PackageReference Include="NLog.Extensions.Logging" Version="5.3.8" />
    <PackageReference Include="Selenium.Support" Version="4.18.1" />
    <PackageReference Include="Selenium.WebDriver" Version="4.18.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
  </ItemGroup>

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>


Wechat.CrawlerNew/Wechat.App/appsettings.json

{
  "ConnectionStrings": {
    "MsSqlConnection": "Server=(localdb)\\mssqllocaldb;Database=Electric;Trusted_Connection=True;MultipleActiveResultSets=true",
    "MySqlConnection": "Server=localhost;Database=Electric;Uid=root;Pwd=123456;"
  },
  "DataProvider": "MsSql",
  "Logging": {
    "LogLevel": {
      "Default": "Debug",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Authentication": {
    "JwtBearer": {
      "SecurityKey": "ELETRICAPIC421AAEE0D114E9C",
      "Issuer": "EletricAPI",
      "Audience": "EletricAPI"
    }
  },
  "CorsOrigins": "http://localhost:9527"
}

Wechat.CrawlerNew/Wechat.Service/Browser/BrowserService.cs



using Microsoft.Extensions.Logging;

namespace Wechat.Service.Browser;

public class BrowserService : IBrowserService
{

    private readonly ILogger<BrowserService> _logger;
    public BrowserService(ILogger<BrowserService> logger)
    {
        _logger = logger;

    }

    public string GetHtmlByUrl(string url)
    {
        // Trace:0,包含最详细的消息。 这些消息可能包含敏感的应用数据。
        // Debug:1,用于调试和开发。
        // Information:2,一般用于跟踪系统的日志。
        // Warning:3,一般用于记录异常事件或意外事件。
        // Error:4,一般用于记录无法处理的异常。
        // Critical:5,需要马上处理的失败,比如数据丢失、磁盘控件不足。
        // None:6,关闭日志打印。
        // System.Console.WriteLine("get html by url");
        _logger.LogTrace("Trace");
        _logger.LogDebug("Debug");
        _logger.LogInformation("Information");
        _logger.LogWarning("Warning");
        _logger.LogError("Error");
        _logger.LogCritical("Critical");
        return string.Empty;
    }

}

Wechat.CrawlerNew/Wechat.Service/Browser/IBrowserService.cs

namespace Wechat.Service.Browser;


public interface IBrowserService{
    string GetHtmlByUrl(string url);


}
    

Wechat.CrawlerNew/Wechat.Service/Topic/TopicService.cs


using Wechat.Service.Browser;

namespace Wechat.Service.Topic;



public class TopicService : ITopicService
{
    private readonly IBrowserService _browserService;

    public TopicService(IBrowserService browserService)
    {
        _browserService = browserService;

    }

    public List<string> ExtractLinksFromUrl(string url)
    {
        _browserService.GetHtmlByUrl(url);
        return new List<string>{ "" };
    }
}


Wechat.CrawlerNew/Wechat.Service/Topic/ITopicService.cs

namespace Wechat.Service.Topic;

public interface ITopicService
{
    List<string> ExtractLinksFromUrl(string url);
}


Wechat.CrawlerNew/Wechat.Service/Wechat.Service.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
  </ItemGroup>

</Project>

标签:控制台,Service,配置文件,public,Wechat,CrawlerNew,using,日志,logger
From: https://www.cnblogs.com/zhuoss/p/18181161

相关文章

  • Linux 7修改网卡名称后,配置文件中的默认网关不生效【转载】
    背景 为了系统统一管理在创建了系统后统一将网卡名称修改为eth0,eth1等格式,并在修改完网卡名称重新编译grub配置文件重启后,添加了静态路由,使用route-n查看系统发现路由可以生效,但是配置的默认网关不生效,记录下排查过程。检查网卡配置文件并手动配置默认网关 在检查了网卡配......
  • MySQL配置文件
    一.Linux1.MySQL5.7**MySQL5.7配置文件示例(适用于Linux)**[mysql]#设置mysql客户端默认字符集default-character-set=utf8[mysqld]#服务器端口port=3306#MySQL的安装目录basedir=/usr/local/mysql#MySQL的数据目录datadir=/var/lib/mysql#错误日志文件......
  • python logger 打印日志错误行数
    pythonlogger打印日志错误行数importloggingapp=Flask(__name__)#配置日志handler=logging.FileHandler('app.log')#日志输出到文件handler.setLevel(logging.INFO)#设置日志级别formatter=logging.Formatter('%(asctime)s-%(name)s-%(levelname)......
  • Kubernetes脚本——K8s日志检查
    #!/bin/bashecho"docker日志采用建议的syslog收集检查,期望结果:1---------------------------------------------------------------------">log_check_result.txtansible-i./hostsall-mshell-a'sudofind/apps/logs/docker/-namedockerd.log|wc-l'&......
  • Git 学习日志1
    目录1.Git安装2.Git最小配置3.创建第一个仓库并配置local信息3.1初始化仓库3.2查看新创建的仓库,并配置local信息3.3添加readme.md文件3.4过程详解4.查看版本历史5.gitk图形化界面6.增加远程库出现的问题7.版本回退1.Git安装官网下载并安装Git官网指导教程中文版资源......
  • Windows Server查看W3SVC IIS服务器中对应的网站日志
    WindowsServer查看W3SVCIIS服务器中对应的网站日志https://www.cnblogs.com/xiaoyou2018/p/16592930.htmlWindowsServer如何查看IIS服务器中对应的网站日志https://shiyousan.com/post/636240709447985366存在多个W3SVC文件的原因https://blog.csdn.net/qq_38150880/a......
  • .net 8中使用过滤器记录系统日志 ActionFilter+Serilog
    1、添加自定义日志过滤器类usingSerilog;usingMicrosoft.AspNetCore.Mvc.Filters;namespaceADTO.CMS.Common.Filter{///<summary>///日志记录过滤器///</summary>publicclassLogActionFilter:IActionFilter{///<summary>///......
  • 2024.5 模拟赛日志
    NOI2024数据结构选讲「广铁一中张冀飞」(20240427)多校NOI2024国赛模拟赛8(20240429)多校NOI2024国赛模拟赛9(20240430)NOI2024简单杂题选讲「金华一中毛艺婷」(20240501)多校NOI2024国赛模拟赛10(20240503)NOI2024网络流问题及其简单应用「重庆八中谢自均」(20240506)剩余7题。最小割......
  • Loguru:简洁易用的日志库
    00—Loguru库介绍在编程世界里,日志记录是一项基础而重要的任务,它帮助我们理解软件的运行状态,监控问题,并进行故障排查。然而,Python的标准日志模块虽然功能强大,但对于初学者来说,配置过程可能既复杂又繁琐。今天,我要介绍的是一个名为Loguru的Python库,它以简洁和易用性著称......
  • Python日志管理之Loguru
    1.安装pipinstallloguru2.快速使用fromloguruimportloggerlogger.add("my_log.log",rotation="10MB")#自动分割日志文件logger.info("这是一个信息级别的日志")3.日志器配置方式1.导入即用fromloguruimportlogger,有且只有1个日志器对象,简化配置复杂性......