【问题标题】:ExceptionLogger with using xml使用 xml 的 ExceptionLogger
【发布时间】:2016-07-18 08:28:57
【问题描述】:

我写信是想问你这个问题。所以我有将异常信息写入 xml 文件的方法,但是如果处理了一些异常,则此方法将替换该文件中的所有内容。我希望该方法写入结束文件有关异常的新信息 我的方法代码如下:

public void WriteIntoFile()
        {
            XDocument xdoc = new XDocument(
            new XElement("Exceptions",
                new XElement("Exception",
                    new XElement("Message",this.ErrorMessage.ToString())
                   )));

            xdoc.Save("1.xml");
        }

请帮帮我

【问题讨论】:

  • Appending an existing XML file。但我建议使用像 NLog 这样的日志框架。
  • 您确定编写自己的日志框架是最好的方法吗?当日志文件变大时,您需要考虑性能,以及决定如果磁盘已满,或者如果您想每天创建一个新的日志文件,或者当日志文件超过一定大小时该怎么办.这个问题已经被多个日志框架解决了。除了 NLog,你还可以考虑log4net

标签: c# .net xml linq


【解决方案1】:

这应该可以完成任务,假设文件存在并且您创建了一个名为“Exceptions”的新节点。

    public void WriteIntoFile(string Message)
    {
        const string Path = "C:\\Temp\\Log.xml";

        XmlDocument MyDocument = new XmlDocument();
        MyDocument.Load(Path);

        XmlNode ExceptionsNode = MyDocument.CreateElement("Exceptions");
        XmlNode ExceptionNode = MyDocument.CreateElement("Exception");
        XmlNode MessageNode = MyDocument.CreateElement("Message");

        MessageNode.InnerText = Message;

        ExceptionNode.AppendChild(MessageNode);
        ExceptionsNode.AppendChild(ExceptionNode);

        MyDocument.AppendChild(ExceptionsNode);
    }

如果您想要“例外”- 节点附加到现有的“例外”节点,请使用:

        XmlNode ExceptionsNode = MyDocument.SelectSingleNode("/Exceptions");

来自奥地利的问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-15
    • 2014-11-10
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多