मैं वेब एपी 2 और ओविन का उपयोग करके अपने ऐप में लॉगिंग जोड़ने की कोशिश कर रहा हूं, इसलिए मैंने माइक्रोसॉफ्ट ओविन लॉगिंग का उपयोग करना शुरू किया, जिसके लिए ILogger
और ILoggerFactory
की आवश्यकता होती है, जिसे कार्यान्वित किया गया है और जब मुझे STARTUP के अंदर कुछ भी लॉग इन करने की आवश्यकता होती है तो यह बहुत अच्छा काम करता है विधि या Owin Middleware घटकों के किसी भी।माइक्रोसॉफ्ट Owin लॉगिंग - वेब एपीआई 2 - मैं लकड़हारा कैसे बनाऊं?
उदाहरण के लिए, जब मैं Startup
विधि में हूँ मैं का उपयोग कर लकड़हारा बना सकते हैं:
public void Configuration(IAppBuilder app)
{
// Creates configuration
var configuration = new HttpConfiguration();
// Configure WebApi Settings
WebApiConfig.Register(configuration);
app.SetLoggerFactory(new OwinLog4NetLoggerFactory("Default"));
var logger = app.CreateLogger<Startup>();
logger.WriteInformation("test log");
// Enabled WebApi in OWIN
app.UseWebApi(configuration);
}
कहाँ "OwinLog4NetLoggerFactory" मेरे कस्टम ILoggerFactory कार्यान्वयन है।
अभी तक, बहुत अच्छा ... लेकिन ... जब मैं वास्तविक वेब एपीआई एक्शन विधि में हूं तो मैं लॉगर कैसे बना सकता हूं? ... मैंने Request.GetOwinEnvironment()
तक पहुंचने का प्रयास किया और लॉगर फ़ैक्टरी शब्दकोश में नहीं है ।
उदाहरण के लिए:
public class AccountController : ApiController
{
public int Get(int id)
{
// Create logger here
return id + 1;
}
}
मैं जानता हूँ कि मैं एपीआई नियंत्रक से लकड़हारा जोड़ने के लिए लॉगर फैक्टरी या यहाँ तक कि इंजेक्शन के लिए एक संदर्भ के साथ एक स्थिर वर्ग बना सकते हैं, लेकिन यह है कि कुछ करने के लिए जटिल लगता है कि ऐसा करना चाहिए पहले से ही वहाँ हो।
कोई भी विचार की सराहना की जाएगी।
किसी को भी वास्तविक उत्तर दे सकते हैं:
यहाँ कुछ अतिरिक्त लिंक हैं: तो फिर अपने web.config में, आप अपने NLog विन्यास का उपयोग करने के Common.Logging कॉन्फ़िगर करेंगे मूल पोस्टर का सवाल? नीचे दिया गया एक जवाब वह नहीं है जो उसने पूछा था। –