2008-10-02 5 views
34

मैं एक SQL सर्वर 2005 डेटाबेस में एक साधारण सिस्ट्रे अनुप्रयोग से संदेशों को लॉग इन करने के लिए AdoNetAppender के साथ Log4Net का उपयोग कर रहा हूं।लॉगऑनेट के माध्यम से आप मशीन नाम को कैसे लॉग करते हैं?

मैं लॉग संदेश के साथ मशीन नाम लॉग इन करने की वजह से इस आवेदन कई मशीनों पर चल रहे हो जाएगा चाहता हूँ और मैं पर जो एक संदेश उत्पन्न जानना चाहते हैं।

लेकिन, मुझे log4net.Layout.PatternLayout के माध्यम से इस जानकारी है कि मैं appender के साथ उपयोग कर रहा हूँ का पर्दाफाश करने के लिए एक रास्ता नहीं मिल रहा।

क्या इस तरह से log4net के माध्यम से मशीन नाम लॉग करने का कोई तरीका है?

उत्तर

72

आप उदाहरण के लिए, पहले से भरा संपत्ति log4net:HostName उपयोग कर सकते हैं:

<parameter> 
    <parameterName value="@machine" /> 
    <dbType value="String" /> 
    <size value="255" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%X{machine}" /> 
    </layout> 
</parameter> 

फिर लॉग में लिखने से पहले इस लाइन को जोड़ने के

<conversionPattern value="%property{log4net:HostName}" /> 

इस तरह आपको एमडीसी को पॉप्युलेट करने की आवश्यकता नहीं है।

+1

भविष्य पाठकों के लिए, मैं इस <पैरामीटर नाम = "कार्य केंद्र"> <आकार value = "256" के साथ काम करने के लिए अपने AdoNetAppender मिला /> <लेआउट टाइप = "log4net.Layout.PatternLayout" value = "% property {log4net: HostName}" /> – granadaCoder

+1

भविष्य पाठक। मुझे लगता है कि यह इस पृष्ठ पर FIELDS से आता है: http://logging.apache.org/log4net/release/sdk/html/T_log4net_Core_LoggingEvent.htm – granadaCoder

11

आप एक पैरामीटर निम्न के समान बना सकते हैं: MDC.Set("machine", Environment.MachineName);

+0

यह पूरी तरह से काम किया। मुझे पता था कि यह कुछ आसान होना चाहिए था। धन्यवाद। –

संबंधित मुद्दे