diff --git a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Core/NmsTrace.cs b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Core/NmsTrace.cs
new file mode 100644
index 00000000..f4d0dcc2
--- /dev/null
+++ b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Core/NmsTrace.cs
@@ -0,0 +1,160 @@
+#region License
+
+/*
+ * Copyright 2002-2009 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#endregion
+
+using Apache.NMS;
+using Common.Logging;
+
+namespace Spring.Messaging.Nms.Core
+{
+ ///
+ /// Implemention of NMS ITrace interface that will log NMS messages to Common.Logging.
+ ///
+ /// Registering of this class is done by default in NmsTemplate and SimpleMessageListenerContainer if the value
+ /// of Apache.NMS.Tracer.Trace is null, indicating it was not set.
+ ///
+ /// Mark Pollack
+ public class NmsTrace : ITrace
+ {
+ #region Logging Definition
+
+ private readonly ILog log;
+
+ #endregion
+
+ ///
+ /// Initializes a new instance of the class. The log name used is typeof(NmsTrace).
+ ///
+ public NmsTrace()
+ {
+ log = LogManager.GetLogger(typeof(NmsTrace));
+ }
+
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The log instance to use for logging.
+ public NmsTrace(ILog log)
+ {
+ this.log = log;
+ }
+
+ ///
+ /// Logs message at Debug Level.
+ ///
+ /// The message.
+ public void Debug(string message)
+ {
+ log.Debug(message);
+ }
+
+ ///
+ /// Logs message at Info Level.
+ ///
+ /// The message.
+ public void Info(string message)
+ {
+ log.Info(message);
+ }
+
+ ///
+ /// Logs message at Warn Level.
+ ///
+ /// The message.
+ public void Warn(string message)
+ {
+ log.Warn(message);
+ }
+
+ ///
+ /// Logs message at Error Level.
+ ///
+ /// The message.
+ public void Error(string message)
+ {
+ log.Error(message);
+ }
+
+ ///
+ /// Logs message at Fatal Level.
+ ///
+ /// The message.
+ public void Fatal(string message)
+ {
+ log.Fatal(message);
+ }
+
+ ///
+ /// Gets a value indicating whether the debug log level is enabled.
+ ///
+ ///
+ /// true if this instance is debug enabled; otherwise, false.
+ ///
+ public bool IsDebugEnabled
+ {
+ get { return log.IsDebugEnabled; }
+ }
+
+ ///
+ /// Gets a value indicating whether the info log level is enabled.
+ ///
+ ///
+ /// true if this instance is info enabled; otherwise, false.
+ ///
+ public bool IsInfoEnabled
+ {
+ get { return log.IsInfoEnabled; }
+ }
+
+ ///
+ /// Gets a value indicating whether the warn log level is enabled.
+ ///
+ ///
+ /// true if this instance is warn enabled; otherwise, false.
+ ///
+ public bool IsWarnEnabled
+ {
+ get { return log.IsWarnEnabled; }
+ }
+
+ ///
+ /// Gets a value indicating whether the error log level is enabled.
+ ///
+ ///
+ /// true if this instance is error enabled; otherwise, false.
+ ///
+ public bool IsErrorEnabled
+ {
+ get { return log.IsErrorEnabled; }
+ }
+
+ ///
+ /// Gets a value indicating whether the fatal log level is enabled.
+ ///
+ ///
+ /// true if this instance is fatal enabled; otherwise, false.
+ ///
+ public bool IsFatalEnabled
+ {
+ get { return log.IsFatalEnabled; }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Support/NmsAccessor.cs b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Support/NmsAccessor.cs
index 4d088d95..dbe04340 100644
--- a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Support/NmsAccessor.cs
+++ b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Support/NmsAccessor.cs
@@ -20,6 +20,7 @@
using System;
using Common.Logging;
+using Spring.Messaging.Nms.Core;
using Spring.Objects.Factory;
using Apache.NMS;
@@ -134,6 +135,14 @@ namespace Spring.Messaging.Nms.Support
{
throw new ArgumentException("ConnectionFactory is required");
}
+ if (Tracer.Trace == null)
+ {
+ if (logger.IsTraceEnabled)
+ {
+ logger.Trace("Setting Apache.NMS.Tracer.Trace to default implementation that directs output to Common.Logging");
+ }
+ Tracer.Trace = new NmsTrace();
+ }
}
///
diff --git a/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.2008.csproj b/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.2008.csproj
index 65fd4eff..efdf0f14 100644
--- a/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.2008.csproj
+++ b/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.2008.csproj
@@ -21,7 +21,8 @@
4
Spring.Messaging.Nms.xml
true
-
+
+
pdbonly
@@ -74,6 +75,7 @@
+