在 ASP.NET Core 2.1 项目中使用 Kestrel 并在 中指定绑定时UseKestrel()
,会在警告级别记录一条消息:
Overriding address(es) 'http://localhost:50000/'. Binding to endpoints defined in UseKestrel() instead.
这给我们的日志增加了噪音,报告了一个默认(因此令人困惑)的 URL,并且不应该是一个警告。除了记录器本身过滤消息之外,有没有办法配置网络主机构建器,使其在启动时不记录?
我正在将我的持久层从Riak迁移到DynamoDB.我的数据模型包含一个可选的业务标识符字段,希望能够将其作为密钥的替代方案进行查询.
似乎DynamoDB二级索引不能null
并且需要一个范围密钥,所以尽管与Riak的二级索引名称相似,但这看起来却是一个非常不同的野兽.
有没有一种优雅的方法来有效地查询我的可选字段,而不是将数据丢入外部搜索索引?
Serilog 丰富者(尤其LogEvent
是)是否期望了解被推入的属性LogContext
?
我有一个被推送到 Serilog 上下文的属性:
using (LogContext.PushProperty(LoggingConstants.MyProperty, _myValue))
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我还注册了一个自定义丰富器,如果属性不存在,它会添加一个属性,并将其填充到指定的长度:
public class PaddedPropertyEnricher : ILogEventEnricher
{
private readonly string _propertyName;
private readonly int _maxLength;
public PaddedPropertyEnricher(string propertyName, int maxLength)
{
_propertyName = propertyName;
_maxLength = maxLength;
}
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
var property = propertyFactory.CreateProperty(_propertyName, new string(' ', _maxLength));
logEvent.AddPropertyIfAbsent(property);
}
}
Run Code Online (Sandbox Code Playgroud)
和:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.Enrich.With(new PaddedPropertyEnricher(LoggingConstants.MyProperty, 3))
// etc.
Run Code Online (Sandbox Code Playgroud)
此丰富器的目的是使不包含自定义属性的日志条目不会导致日志条目中的列未对齐。
例如,它的目的是改变这个:
2021-06-10 12:23:33.676 +12:00 [INF] [] …
Run Code Online (Sandbox Code Playgroud) 为了在慢速/不可靠的网络上测试我的 Blazor 应用程序,我正在寻找一种方法来人为地限制发送到 Blazor 或从 Blazor 发送的 Websocket 消息。不幸的是 Chrome 仍然不支持限制 websocket 连接。
我深入研究了 ASP.NET SignalR 代码的内部,但找不到任何可以扩展的明显服务,也没有找到任何添加 SignalR 中间件的简单方法。
扩展HubDispatcher
看起来最有前途,但这是一个内部类。
Blazor 或 SignalR 类中是否有可用的消息处理扩展点?