跟踪 C# 日志详细信息

Trace C# Log Details

是否可以编写代码来跟踪用 c# 编写的日志? 例如:

string filePath = @"C:\Error.txt";
using (StreamWriter writer = new StreamWriter(filePath, true))
{
    writer.WriteLine("Message :" + ex.Message );
}

现在我想在不打开 Error.txt 的情况下编写代码跟踪异常消息 (ex.Message)。(注意:代码应该适用于跟踪在 asp.net+c# 中开发的任何网站) .

当然,.NET 平台中有一个强大的内置跟踪机制。请参阅 that 和 MSDN 文档。它是通过静态 类 实现的,因此您可以在代码中的任何位置使用它。 第一步是通过代码或 .config 文件配置跟踪侦听器:

Trace.Listeners.Add(new TextWriterTraceListener("trace.log");

然后,要记录一条消息,只需调用:

Trace.WriteLine(ex.ToString());

如果你只是需要定期检查某个网站是否在线,你可以写这样简单的东西:

Timer t = new Timer(60000);
t.Elapsed += (sender, e) =>
{
    try
    {
        HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create("http://google.com");
        using (HttpWebResponse httpRes = (HttpWebResponse) httpReq.GetResponse())
        {
            if (httpRes.StatusCode != HttpStatusCode.OK)
            {
                File.AppendAllText(@"C:\Error.txt",
                    string.Format("Server error: {0} {1}",
                     httpRes.StatusCode, httpRes.StatusDescription));
            }
        }
    }
    catch (Exception exc)
    {
        File.AppendAllText(@"C:\Error.txt", "Error: "+exc.ToString());
    }
};
t.Start();

或者使用像 Zabbix 这样的通用监控解决方案。