我想将 Orchard 中的错误和消息记录到 Sentry 。
为此,我从 log4net 创建了SentryAppender
实施AppenderSkeleton
。
在Orchard中记录消息时,可以传递一个格式后跟参数,例如:
logger.Info("My value is: {0}", 1337)
在LoggingEvent
方法中收到Append
时,该事件将包含MessageObject
。该对象将包含m_format
和m_args
,其中包含调用记录器时最初提供的格式和参数。
但是这些属性是不可访问的,因为它们是私有的,并且在运行时被放置在密封的类中
我可以调用RenderLoggingEvent
来获取呈现的消息,但是如果我将其传递给 Sentry ,它将无法正确分组消息,每个不同的参数都会有一个新的日志事件
问题: 有没有办法访问格式和args,还是应该实现不同的基类?
我不确定这是否值得它自己的问题
LoggingEvent
有时会有LocationInformation
,其中包含有关调用哪种方法以及来自何处的信息。但是,此信息看起来好像对记录器的调用来自CastleLogger
。
有没有办法确保此信息指向记录器调用的真正原点?