私は少し立ち往生しています。私は、情報をログに記録するために、アペンダーがデータベースでストアドプロシージャを実行できることを要求するログモジュールを作成してきました。次のようなカスタムxmlレイアウトを作成しました。
protected override void FormatXml(XmlWriter writer, LoggingEvent loggingEvent)
{
writer.WriteStartElement("LogEntry");
writer.WriteStartElement("DateTime");
writer.WriteString(loggingEvent.TimeStamp.ToLongTimeString());
writer.WriteEndElement();
writer.WriteStartElement("Message");
writer.WriteString(loggingEvent.RenderedMessage);
writer.WriteEndElement();
writer.WriteStartElement("User");
writer.WriteString(loggingEvent.UserName);
writer.WriteEndElement();
writer.WriteStartElement("Process");
writer.WriteString(loggingEvent.ThreadName);
writer.WriteEndElement();
writer.WriteStartElement("Severity");
writer.WriteString(loggingEvent.Level.ToString());
writer.WriteEndElement();
writer.WriteStartElement("Title");
writer.WriteString(loggingEvent.LoggerName);
writer.WriteEndElement();
writer.WriteStartElement("Class");
writer.WriteString(loggingEvent.LocationInformation.ClassName);
writer.WriteEndElement();
writer.WriteStartElement("Filename");
writer.WriteString(loggingEvent.LocationInformation.FileName);
writer.WriteEndElement();
writer.WriteEndElement();
}
したがって、基本的には、AdoNetAppenderでこのレイアウトを介してロギングイベントを実行し、結果のXmlをパラメーターとしてstorprocを実行する必要があります。すなわち
EXEC Logging.InsertEntry @XML
残念ながら、周りに例はないようです。
どんな助けでも大歓迎です。