मुझे गतिशील रूप से लॉगर्स बनाने की आवश्यकता है, इसलिए from here पोस्ट और परावर्तक की सहायता से मैंने गतिशील रूप से लॉगर्स बनाने में कामयाब रहा है, लेकिन मुझे यह जानना है कि मुझे किसी और चीज के बारे में चिंता करनी चाहिए ... मुझे नहीं पता प्रभाव यह कर सकते हैं।log4net: गतिशील रूप से लॉगर बनाना, क्या मुझे किसी चीज़ के बारे में चिंता करनी चाहिए?
public static ILog GetDyamicLogger(Guid applicationId)
{
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
RollingFileAppender roller = new RollingFileAppender();
roller.LockingModel = new log4net.Appender.FileAppender.MinimalLock();
roller.AppendToFile = true;
roller.RollingStyle = RollingFileAppender.RollingMode.Composite;
roller.MaxSizeRollBackups = 14;
roller.MaximumFileSize = "15000KB";
roller.DatePattern = "yyyyMMdd";
roller.Layout = new log4net.Layout.PatternLayout();
roller.File = "App_Data\\Logs\\"+applicationId.ToString()+"\\debug.log";
roller.StaticLogFileName = true;
PatternLayout patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%date [%thread] %-5level %logger [%property{NDC}] - %message%newline";
patternLayout.ActivateOptions();
roller.Layout = patternLayout;
roller.ActivateOptions();
hierarchy.Root.AddAppender(roller);
hierarchy.Root.Level = Level.All;
hierarchy.Configured = true;
DummyLogger dummyILogger = new DummyLogger(applicationId.ToString());
dummyILogger.Hierarchy = hierarchy;
dummyILogger.Level = log4net.Core.Level.All;
dummyILogger.AddAppender(roller);
return new LogImpl(dummyILogger);
}
internal sealed class DummyLogger : Logger
{
// Methods
internal DummyLogger(string name)
: base(name)
{
}
}
चीयर्स।
आपको उस कोड का उपयोग करने के लिए बहुत अच्छा कारण चाहिए और इसके बजाय कॉन्फ़िगरेशन फ़ाइल का उपयोग नहीं करना चाहिए :-) –
कारण यह है कि मेरा एप्लिकेशन रनटाइम पर गतिशील रूप से समुदायों को बनाता है, और मैं प्रत्येक के लिए एक लॉग फ़ाइल बनाए रखना चाहता हूं। – vtortola