2014-11-16 1 views
2

Log4Net을 사용하여 MSMQ 대기열로 메시지를 보내려고합니다. 인터넷에서 기능을 이해하는 데 많은 시간을 할애했습니다. 그러나 나는 많은 도움을 찾을 수 없었다. 는 IS 다음 내 소스 코드 : 내가 코드를 디버깅 할 때Log4Net을 사용하여 MSMQ 대기열로 데이터를 보내는 방법은 무엇입니까?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using log4net; 
using log4net.Config; 

namespace MQTest 
{ 
    class Program 
    { 
    private static readonly ILog ilogger = LogManager.GetLogger(""); 
    static void Main(string[] args) 
    { 
     ilogger.Debug("This should go to the queue"); 
     ilogger.Fatal("This should go to the queue"); 
    } 
    } 
} 

의 app.config는

<log4net> 
<appender name="MsmqAppender" type="MQTest.Appender.MsmqAppender, MQTest"> 
<queueName value="private$\test_queue"/> 
<labelLayout value="LOG [%level] %date"/> 
<layout type="log4net.Layout.XmlLayoutSchemaLog4j"/> 
</appender> 
<root> 
    <level value="ALL"/> 
    <appender-ref ref="MsmqAppender" /> 
</root> 
</log4net> 

, 나는 거짓 IsDebugEnabled = 거짓, IsFatalEnabled = 등 내가 방법을 모르는 것으로 나타났습니다 MsmqAppender를 사용하면서 위의 플래그를 채 웁니다.

감사합니다.

+0

편집 한 설정에 MsmqAppender가 포함되어 있지 않습니다. ' stuartd

+0

log4net 디버깅을 사용하셨습니까? – stuartd

+0

예, log4net.Internal.Debug를 활성화했습니다. 하지만 콘솔 로그에 어떤 문제도 알지 못했습니다. System.Diagnostics.Trace는 파일에 아무 것도 쓰지 않았습니다. – Ullan

답변

0

제대로 설정하지 않았습니다.

appender를 정의하여 구성 파일에 등록 했으므로 로그 관리자에서 얻은 ILog 로거 만 사용하여 로그 할 경우 logMSMQ의 인스턴스를 만들 필요가 없습니다. 펜더 및 구성을 보면

myLogger.Debug("This should go to the queue"); 

, 몇 가지 눈에 띄는 : 당신은 펜더 내에서 XmlConfigurator.Configure();를 호출하지 않아야

  1. 당신은 올바르게 설정에서 펜더를 등록하지 않는 : 당신이 specify it by type and assembly namespace 필요, 예 :

<root> 
    <level value="ALL" /> 
    <appender-ref ref="MsmqAppender" /> 
</root> 
: 당신은 루트 로거 구성에 이름을 지정하지 않은 <appender name="MsmqAppender" type="AssemblyNamespace.MSMQTest.LogMSMQ, AssemblyNamespace">

  • 설정하는 동안 log4net internal debugging을 켜면 상황을 파악하는 데 도움이됩니다.

    +0

    큐 구성을 추가했지만 여전히 코드가 작동하지 않습니다. Ullan

    +0

    어떤 종류의 작업을하고 있습니까? 질문의 코드를 업데이트하고 작동하지 않는 부분에 대한 세부 정보를 제공 할 수 있습니까? – stuartd

    +0

    새로운 코드를 추가했습니다. 도움을 주셔서 감사합니다. – Ullan

    관련 문제