LogConfigOutput.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using System.Xml;
  2. using System;
  3. namespace Wayne.Lib.Log
  4. {
  5. /// <summary>
  6. /// Output
  7. /// </summary>
  8. public abstract class LogConfigOutput : ICloneable
  9. {
  10. internal abstract void WriteXml(XmlWriter xmlWriter);
  11. internal static LogConfigOutput Create(XmlNode outputNode, string ns)
  12. {
  13. XmlNode parameterNode = outputNode["Parameters"];
  14. if (parameterNode != null)
  15. {
  16. string type = outputNode.Attributes["Type"].Value;
  17. switch (type)
  18. {
  19. case LogConfigTextFileOutput.XmlType: return new LogConfigTextFileOutput(parameterNode, ns);
  20. case LogConfigEventLogSubscriptionOutput.XmlType: return new LogConfigEventLogSubscriptionOutput(parameterNode, ns);
  21. case LogConfigExternalLogWriterOutput.XmlType: return new LogConfigExternalLogWriterOutput(parameterNode, ns);
  22. }
  23. }
  24. return null;
  25. }
  26. /// <summary>
  27. /// Clones the object
  28. /// </summary>
  29. /// <returns></returns>
  30. public abstract object Clone();
  31. }
  32. }