Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/WM7S8.png" height="16" width="18" alt="" class="sponsor tag img">servicestack 是否将自定义接收器与ServiceStack.Logging.Serilog一起使用?_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack_Serilog - Fatal编程技术网 servicestack 是否将自定义接收器与ServiceStack.Logging.Serilog一起使用?,servicestack,serilog,servicestack,Serilog" /> servicestack 是否将自定义接收器与ServiceStack.Logging.Serilog一起使用?,servicestack,serilog,servicestack,Serilog" />

servicestack 是否将自定义接收器与ServiceStack.Logging.Serilog一起使用?

servicestack 是否将自定义接收器与ServiceStack.Logging.Serilog一起使用?,servicestack,serilog,servicestack,Serilog,在ServiceStack框架中实例化Serilog工厂时,是否有一种不明显的方式(至少对我而言)来添加自定义接收器,例如MongoDB或MicrosoftTeam,或者是滚动您自己的工厂并实现ILog PM> Install-Package ServiceStack.Logging.Serilog LogManager.LogFactory = new SerilogFactory(); 这可以在不使用ServiceStack实现的情况下工作,但是它被认为是不好的形式吗 pu

在ServiceStack框架中实例化Serilog工厂时,是否有一种不明显的方式(至少对我而言)来添加自定义接收器,例如MongoDB或MicrosoftTeam,或者是滚动您自己的工厂并实现ILog

PM> Install-Package ServiceStack.Logging.Serilog

LogManager.LogFactory =  new SerilogFactory();

这可以在不使用ServiceStack实现的情况下工作,但是它被认为是不好的形式吗

public override void Configure(Container container)
{
    Log.Logger = new LoggerConfiguration()
        .WriteTo.MongoDBCapped("mongodb://mymongourl:27017/mylogs",
            collectionName: "mycollectionoflogs", cappedMaxSizeMb: 50,
            cappedMaxDocuments: 10000)
        .CreateLogger();

    SetConfig(new HostConfig
    {
        DefaultRedirectPath = "/metadata",
        DebugMode = AppSettings.Get(nameof(HostConfig.DebugMode), false)              
    });
}
在ServiceInterface消息实现中:

public object Any(MyRequest request)
{
    Log.Information("I'm a lumberjack and I'm OK");

    return new MyRequestResponse
    {
        Result = $"{ results.Chop() }"
    };
}

我刚刚添加了一个构造函数重载以使用中的自定义Serilog记录器,此更改可从现在的v5.1.1中获得

通过此更改,您可以通过ServiceStack的
SerilogFactory传递自定义Serilog记录器,例如:

LogManager.LogFactory = new SerilogFactory(new LoggerConfiguration()
    .WriteTo.MongoDBCapped("mongodb://mymongourl:27017/mylogs",
        collectionName: "mycollectionoflogs", cappedMaxSizeMb: 50,
        cappedMaxDocuments: 10000)
    .CreateLogger());
您可以像示例中一样直接使用Serilog logger,但它无法捕获ServiceStack的内置日志,或者以后无法用任何其他日志替代它。

谢谢,非常感谢。将从MyGet中退出