在asp.net 4. 7. 1 webapi中安装serilog并进行配置

knsnq2tg  于 2023-02-10  发布在  .NET
关注(0)|答案(3)|浏览(201)

我找不到任何在ASP.NET 4. 7. 1 WebApi项目中安装Serilog的资源。有人能帮我吗?有大量的.NET核心资源,但没有帮助。

kdfy810k

kdfy810k1#

安装所需的NuGet数据包,打开Package Manager Console并键入

Install-Package Serilog
Install-Package Serilog.Sinks.File

创建名为logger的新静态类,该类将具有Serilog配置

public static class Logger
{
    private static readonly ILogger _errorLogger;

    static Logger()
    {
        _errorLogger = new LoggerConfiguration()
            .WriteTo.File(HttpContext.Current.Server.MapPath("~/logs/log-.txt"), rollingInterval: RollingInterval.Day)
            .CreateLogger();
    }

    public static void LogError(string error)
    {
        _errorLogger.Error(error);
    }
}

如果要记录如下错误,请使用logger

Logger.LogError("Test error log!");
fkaflof6

fkaflof62#

在我的例子中,我简单地创建了一个静态Serilog类,并在main类中初始化它以使用它(对于我的控制台应用程序.NET Framework 4. 7. 2):

public static class SerilogClass
    {
        public static readonly Serilog.ILogger _log;
        static SerilogClass() 
        {
        _log= new LoggerConfiguration().
                MinimumLevel.Debug().
                WriteTo.File(@"D:\MyPoject\Logs.log").
                CreateLogger();
        }
                 
    }

Program.cs:

class Program
    {
        static readonly Serilog.ILogger log3 = SerilogClass._log;
        static void Main(string[] args)
        {
            log3.Debug("This is serialog Example");
        }
}
iyfjxgzm

iyfjxgzm3#

.net framework 4.7.2中有两种配置Serilog的方法:
1.仅使用代码
1.通过使用app. config
需要安装以下nuget包:

Install-Package Serilog
    Install-Package Serilog.Settings.AppSettings
    Install-Package Serilog.Sinks.File
    • 第一种方式(仅使用代码):**

制作一个staticserilogclass

public static class SerilogClass
    {
        public static readonly Serilog.ILogger _log;
        static SerilogClass()
        {
            _log = new LoggerConfiguration().
                    MinimumLevel.Debug().                    
                    WriteTo.File(@Environment.GetEnvironmentVariable("LocalAppData") + "\\Logs\\Logs1.log").
                    CreateLogger();
        }

    }

注:@Environment.GetEnvironmentVariable("LocalAppData")将日志文件保存到appdata文件夹中
program.cs中初始化和使用SerilogClass

class Program
    {       
        static readonly Serilog.ILogger log = SerilogClass._log;
        
        static void Main(string[] args)
        {            
             log.Debug("This is serialog Example");
             log.Debug("This is serialog Example2");
        }
            
    }
    • 第二种方式(通过使用app. config):**

制作一个staticserilogclass

public static class SerilogClass
    {       
        public static readonly Serilog.ILogger _log;        
        static SerilogClass()
        {
            _log = new LoggerConfiguration().
                    ReadFrom.AppSettings().
                    CreateLogger();
        }

    }

program.cs中初始化和使用SerilogClass

class Program
        {       
            static readonly Serilog.ILogger log = SerilogClass._log;
            
            static void Main(string[] args)
            {            
                 log.Debug("This is serialog Example using app.config");
                 log.Debug("This is serialog Example2 using app.config");
            }
                
        }

我们还需要添加<appSettings></appSettings>部分,以定义我们在第一种方式中通过代码执行的所有设置
App.config

<configuration> 
    <configSections></configSections>
    <appSettings>
        <add key="serilog:minimum-level" value="Debug"/>
        <add key="serilog:using:File" value="Serilog.Sinks.File" />     
        <add key="serilog:write-to:File.path" value="C:\Logs\LogSerilog.txt" />
        <add key="serilog:write-to:File.shared" value="true" />
        <add key="serilog:write-to:File.rollOnFileSizeLimit" value="true" />
        <add key="serilog:write-to:File.fileSizeLimitBytes" value="2000" />
    </appSettings>
    <startup></startup>
    <runtime></runtime>
</configuration>

相关问题