小编Rem*_*San的帖子

读取 serilog 的 appconfig 文件

我有Logger.cs一个类,我正在初始化 serilog 设置,如下所示:

_logger = new LoggerConfiguration()
                .ReadFrom.AppSettings()
                .MinimumLevel.Debug()
                .WriteTo.File(_filepath, restrictedToMinimumLevel: LogEventLevel.Debug, shared: true, rollOnFileSizeLimit: true)
                .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

我想从 app.config 文件中读取文件的大小。我有如下的 app.config 文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="serilog:using:File" value="Serilog.Sinks.File" />
    <add key="serilog:write-to:File.fileSizeLimitBytes" value="2000" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但看起来appsettings根本就没有读过。因为我可以看到生成了超过 2kb 的文件。我在这里错过了什么?

我的记录器类将如何从文件中读取app.config,我是否错过了 assemblyinfo 类中的任何设置?

c# serilog

6
推荐指数
1
解决办法
1万
查看次数

serilog 仅记录调试、错误和警告日志,但不记录信息

我有一个配置了 serilog 进行日志记录的应用程序。我的应用程序中有一个复选框,只有单击该复选框按钮时,它才应记录所有信息日志,否则仅应记录错误和警告日志。

在调试模式下,当未选中按钮时,如何仅记录调试、错误和警告日志。两天以来我一直在尝试这样做。.MinimumLevel.Debug()我已经尝试了 google/stackoverflow 使用/中建议的所有方法,restrictedToMinimumLevel: LogEventLevel.Debug但它对我不起作用。它还记录信息日志。

请帮我解决这个问题。仅记录调试、错误和警告日志。

val当复选框启用时为真:

if (val == "true")
{
    _logger = new LoggerConfiguration()
                    .MinimumLevel.Debug()
                    .WriteTo.File(_filepath, restrictedToMinimumLevel: LogEventLevel.Information)
                    .CreateLogger();
}
else if (val == "false")
{
    _logger = new LoggerConfiguration()
                    .MinimumLevel.Debug()
                    .WriteTo.File(_filepath, restrictedToMinimumLevel: LogEventLevel.Debug)
                    .CreateLogger();
}
Run Code Online (Sandbox Code Playgroud)

val为 false 时,即当未启用复选框时,它应该仅记录调试、错误和警告日志。

c# serilog

5
推荐指数
1
解决办法
4552
查看次数

使用 serilog 的多个项目中的相同日志文件

我有一个 Logger.cs 类:

public Logger(string logtype=null)
        {
            _logtype = logtype;
            LogEventLevel level = LogEventLevel.Warning;
            if (File.Exists(configPath))
            {
                XDocument xdoc = XDocument.Load(configPath);
                string val = xdoc.Descendants("logEnabled").First().Value;
                // if(clientConfig.LogEnabled == true)
                if (val == "true")
                {
                    level = LogEventLevel.Debug;

                }
                else if (val == "false")
                {
                    level = LogEventLevel.Warning;
                }
            }
            else
            {
                level = LogEventLevel.Warning;
            }
           _logger = new LoggerConfiguration()
                        .MinimumLevel.Debug()
                         .WriteTo.File(_filepath, level)
                         .CreateLogger();

        }
Run Code Online (Sandbox Code Playgroud)

此记录器类用于解决方案中的多个项目。如下图所示:

    Class A {
     Logger _logger = new Logger("A");
    }

Class A1 {
     Logger _logger = …
Run Code Online (Sandbox Code Playgroud)

c# serilog

5
推荐指数
1
解决办法
1826
查看次数

C# 如何知道调用者类

我有以下班级结构。类 A 从类 B 和 C 的构造函数中调用。

Class A
{
    A()
}

Class B
{
    B()
    {
        A();
    }
}

Class C
{
    C()
    {
        A();
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法知道对 A() 的调用是来自 B() 还是 C()?我不想在构造函数中传递任何对象。

c# class

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×4

serilog ×3

class ×1