123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Xml;
- using log4net;
- using log4net.Config;
- namespace SuperSocket.SocketBase.Logging
- {
- /// <summary>
- /// Log4NetLogFactory
- /// </summary>
- public class Log4NetLogFactory : LogFactoryBase
- {
- /// <summary>
- /// Initializes a new instance of the <see cref="Log4NetLogFactory"/> class.
- /// </summary>
- public Log4NetLogFactory()
- : this("log4net.config")
- {
- }
- /// <summary>
- /// Initializes a new instance of the <see cref="Log4NetLogFactory"/> class.
- /// </summary>
- /// <param name="log4netConfig">The log4net config.</param>
- public Log4NetLogFactory(string log4netConfig)
- : base(log4netConfig)
- {
- if (!IsSharedConfig)
- {
- log4net.Config.XmlConfigurator.Configure(new FileInfo(ConfigFile));
- }
- else
- {
- //Disable Performance logger
- var xmlDoc = new XmlDocument();
- xmlDoc.Load(ConfigFile);
- var docElement = xmlDoc.DocumentElement;
- var perfLogNode = docElement.SelectSingleNode("logger[@name='Performance']");
- if (perfLogNode != null)
- docElement.RemoveChild(perfLogNode);
- log4net.Config.XmlConfigurator.Configure(docElement);
- }
- }
- /// <summary>
- /// Gets the log by name.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <returns></returns>
- public override ILog GetLog(string name)
- {
- return new Log4NetLog(LogManager.GetLogger(name));
- }
- }
- }
|