German version below
The Visual Studio project template for BizTalk RFID EventHandlers that is shipped with BizTalk RFID demonstrates nicely, how you should use logging from your EventHandler-components unless you have a really good reason to do otherwise :)
You can use the static method RfidProcessContext.GetLogger to retrieve the logger. Furthermore you can retrieve context specific information about the logger through the RfidProcessContext instance that you receive in the "Init"-Method of your EventHandler component.
The logger exposes quite some methods to log. The most natural to use is "Log" as shown below.
internal void InitializeLog(RfidProcessContext container) { if (myLogger != null) return; string loggerName = this.GetType().Name; myLogger = RfidProcessContext.GetLogger(loggerName); //inherit log level from the process myLogger.CurrentLevel = RfidProcessContext.GetLogger(container.ProcessName).CurrentLevel; myLogger.Info("starting logging for {0}", loggerName); } internal void LogMessage(string msg, Level msglevel) { myLogger.Log(msg, msglevel); } |
German version:
The Visual Studio Projekt Template für BizTalk RFID EventHandlers, welches mit BizTalk RFID mitgeliefert wird, zeigt nett, wie man innerhalb eigener EventHandler-Komponenten Logging nutzen sollte, sofern man nicht einen wirklich guten Grund hat, einen anderen Ansatz zu wählen :)
Über die statische Methode RfidProcessContext.GetLogger erhält man den Logger. In der "Init"-Methode der EventHandler-Komponente erhält man ferner eine RfidProcessContext Instanz, welche man verwenden kann, um kontextspezifische Informationen über den Logger zu erhalten.
Der Logger stellt eine stattliche Anzahl von Methoden für Loggingzwecke zur Verfügung, die naheliegendste ist die Methode "Log", wie oben gezeigt.
Posted
Oct 31 2007, 11:59 AM
by
Andreas Erben