SignalRを使用して接続されたクライアントにメッセージを送信するNLogのターゲットを書き込もうとしています。SignalRを使用してNLogターゲットを書き込む方法
これは私が今持っているものです。私が疑問に思っているのはです。私はConnectionManagerを解決する必要がありますこのように- または -何とかハブ(SignalrTargetHub)への参照を取得し、その上でSendMessageメソッドを呼び出しますか?
いずれかのパフォーマンスに影響はありますか?
[Target("Signalr")]
public class SignalrTarget:TargetWithLayout
{
public SignalR.IConnectionManager ConnectionManager { get; set; }
public SignalrTarget()
{
ConnectionManager = AspNetHost.DependencyResolver.Resolve<IConnectionManager>();
}
protected override void Write(NLog.LogEventInfo logEvent)
{
dynamic clients = GetClients();
var logEventObject = new
{
Message = this.Layout.Render(logEvent),
Level = logEvent.Level.Name,
TimeStamp = logEvent.TimeStamp.ToString("yyyy-MM-dd HH:mm:ss.fff")
};
clients.onLoggedEvent(logEventObject);
}
private dynamic GetClients()
{
return ConnectionManager.GetClients<SignalrTargetHub>();
}
}
https://github.com/cbley/NLog.SignalRですが、「レンダリング」文字列は単一の「メッセージ」プロパティとしてのみ送信されます。 – yzorg
元の 'Message'とレンダリングされたメッセージ(' MessageRendered'または 'FullMessage')の両方を送るNLog-> SignalRブリッジを見たいと思います。 – yzorg