2017-05-25 11 views
9

मेरे आवेदन के हिस्से के रूप में मेरे पास नेट नेट एपीआई प्रोजेक्ट है। ज्यादातर मामलों के विपरीत जहां यह प्रोजेक्ट अपनी प्रक्रिया के रूप में चलाया जाएगा, मेरे पास एक ही प्रक्रिया में एपीआई एक थ्रेड में चलाया जाता है। मेरे प्रोजेक्ट के लिए, मैंने अपनी जरूरतों के अनुरूप कस्टम लॉगिंग सिस्टम लागू किया है। हालांकि, मैं थोड़ी सी समस्या में आया हूं। हर बार जब मैं अपने कार्यक्रम चलाने के लिए, एक बार एपीआई शुरू होता है, इस संदेश को कंसोल में छपा है:Asp.Net कोर एपीआई अक्षम स्टार्टअप पूर्ण संदेश

Hosting environment: Production 
Content root path: C:\Users\Path\To\Code 
Now listening on: http://*:8000 
Application started. Press Ctrl+C to shut down. 

मैं इस संदेश को निष्क्रिय करने के लिए के रूप में यह करने के लिए कोई जरूरत नहीं है चाहते हैं, और यह clutters ऊपर अन्यथा अच्छी तरह से आयोजित कंसोल लॉग मैं एक स्क्रीनशॉट है नीचे तो तुम्हें पता है मैं वास्तव में क्या बारे में बात कर रहा हूँ:

Screenshot of message

मैं पहले से ही MVC (ConfigureServices से ILoggerFactory हटाया के लिए अन्य सभी प्रवेश अक्षम और निर्धारित किया है सभी "कोई नहीं" appsettings.json में करने के लिए लॉग इन करने)।

मैं इस संदेश को अक्षम/दबाने के बारे में कैसे जा सकता हूं?

+0

उत्पादन को/dev/null –

उत्तर

1

तुम भी ऐसा कर सकता है:

var host = BuildWebHost(args); 
host.Start(); 
host.WaitForShutdown(); 

यह बायपास करेंगे Console.WriteLine() रों।

+1

कंसोल को अनुपयोगी बनाये बिना बस परीक्षण किया गया और यह काम करता है। धन्यवाद। – stybl

1

लॉगर फैक्ट्री को हटाने में मदद नहीं होगी, क्योंकि यह कंसोल है। राइटलाइन() (रेफरी: Github issue comment)। आपको Console.WriteLine आउटपुट को दबाने की आवश्यकता है। मुख्य विधि में, इस तरह कोड लिखें। यह Console.WriteLine आउटपुट को अनदेखा कर देगा।

public static void Main(string[] args) 
{ 
    Console.SetOut(new StreamWriter(Stream.Null)); 
    BuildWebHost(args).Run(); 
} 
+2

पर पाइप करें यह नहीं करेगा। अगर मैं ऐसा करता हूं, तो कंसोल पर कुछ भी मुद्रित नहीं होता है। इसमें मेरे लॉग संदेश शामिल हैं। क्या एपीआई को सीमित करने का कोई तरीका है? – stybl