SPRNET-1286 - Provide implementation of Apache.NMS.ITrace to merge NMS logging stream with Common.Logging stream.
This commit is contained in:
160
src/Spring/Spring.Messaging.Nms/Messaging/Nms/Core/NmsTrace.cs
Normal file
160
src/Spring/Spring.Messaging.Nms/Messaging/Nms/Core/NmsTrace.cs
Normal file
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Implemention of NMS ITrace interface that will log NMS messages to Common.Logging.
|
||||
/// </summary>
|
||||
/// <remarks>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.
|
||||
/// </remarks>
|
||||
/// <author>Mark Pollack</author>
|
||||
public class NmsTrace : ITrace
|
||||
{
|
||||
#region Logging Definition
|
||||
|
||||
private readonly ILog log;
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="NmsTrace"/> class. The log name used is typeof(NmsTrace).
|
||||
/// </summary>
|
||||
public NmsTrace()
|
||||
{
|
||||
log = LogManager.GetLogger(typeof(NmsTrace));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="NmsTrace"/> class.
|
||||
/// </summary>
|
||||
/// <param name="log">The log instance to use for logging.</param>
|
||||
public NmsTrace(ILog log)
|
||||
{
|
||||
this.log = log;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs message at Debug Level.
|
||||
/// </summary>
|
||||
/// <param name="message">The message.</param>
|
||||
public void Debug(string message)
|
||||
{
|
||||
log.Debug(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs message at Info Level.
|
||||
/// </summary>
|
||||
/// <param name="message">The message.</param>
|
||||
public void Info(string message)
|
||||
{
|
||||
log.Info(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs message at Warn Level.
|
||||
/// </summary>
|
||||
/// <param name="message">The message.</param>
|
||||
public void Warn(string message)
|
||||
{
|
||||
log.Warn(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs message at Error Level.
|
||||
/// </summary>
|
||||
/// <param name="message">The message.</param>
|
||||
public void Error(string message)
|
||||
{
|
||||
log.Error(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs message at Fatal Level.
|
||||
/// </summary>
|
||||
/// <param name="message">The message.</param>
|
||||
public void Fatal(string message)
|
||||
{
|
||||
log.Fatal(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the debug log level is enabled.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// <c>true</c> if this instance is debug enabled; otherwise, <c>false</c>.
|
||||
/// </value>
|
||||
public bool IsDebugEnabled
|
||||
{
|
||||
get { return log.IsDebugEnabled; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the info log level is enabled.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// <c>true</c> if this instance is info enabled; otherwise, <c>false</c>.
|
||||
/// </value>
|
||||
public bool IsInfoEnabled
|
||||
{
|
||||
get { return log.IsInfoEnabled; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the warn log level is enabled.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// <c>true</c> if this instance is warn enabled; otherwise, <c>false</c>.
|
||||
/// </value>
|
||||
public bool IsWarnEnabled
|
||||
{
|
||||
get { return log.IsWarnEnabled; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the error log level is enabled.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// <c>true</c> if this instance is error enabled; otherwise, <c>false</c>.
|
||||
/// </value>
|
||||
public bool IsErrorEnabled
|
||||
{
|
||||
get { return log.IsErrorEnabled; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the fatal log level is enabled.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// <c>true</c> if this instance is fatal enabled; otherwise, <c>false</c>.
|
||||
/// </value>
|
||||
public bool IsFatalEnabled
|
||||
{
|
||||
get { return log.IsFatalEnabled; }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DocumentationFile>Spring.Messaging.Nms.xml</DocumentationFile>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<NoWarn></NoWarn>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -74,6 +75,7 @@
|
||||
<Compile Include="Messaging\Nms\Core\MessagePostProcessorDelegate.cs" />
|
||||
<Compile Include="Messaging\Nms\Core\NmsGatewaySupport.cs" />
|
||||
<Compile Include="Messaging\Nms\Core\NmsTemplate.cs" />
|
||||
<Compile Include="Messaging\Nms\Core\NmsTrace.cs" />
|
||||
<Compile Include="Messaging\Nms\Core\ProducerDelegate.cs" />
|
||||
<Compile Include="Messaging\Nms\Core\SessionDelegate.cs" />
|
||||
<Compile Include="Messaging\Nms\Listener\AbstractListenerContainer.cs" />
|
||||
|
||||
Reference in New Issue
Block a user