C#获取SQL日志

时间:2013-11-29 20:21:54

标签: c# sql sql-server logging

我已经广泛搜索过帮助但没有找到任何内容,我正在尝试将SQL日志文件(管理> SQL Server日志)备份到csv或文本文件。

有没有办法用C#做到这一点?

2 个答案:

答案 0 :(得分:4)

来自http://technet.microsoft.com/en-us/library/ms187885(v=sql.105).aspx

  

使用SQL Management Studio或任何其他方法查看SQL Server错误日志   文本编辑器。默认情况下,错误日志位于Program   Files \ Microsoft SQL Server \ MSSQL.n \ MSSQL \ LOG \ ERRORLOG和ERRORLOG.n   文件。

因此,您可以使用Directory.EnumerateFiles类枚举文件,使用File.ReadAllText来读取每个文件中的文本。

答案 1 :(得分:3)

您应该能够通过SQL Server SMO程序集获取错误日志路径:

using System.Data.SqlClient;
using Microsoft.SqlServer.Management.Smo;

namespace SQLLogsToText
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            string errorLogPath = null;

            using (var sqlConnection = new SqlConnection(@"Integrated Security=SSPI; Data Source=(local)\SQLEXPRESS"))
            {
                var serverConnection = new Microsoft.SqlServer.Management.Common.ServerConnection(sqlConnection);
                var server = new Server(serverConnection);
                errorLogPath = server.ErrorLogPath;
            }

            if (errorLogPath != null)
            {
                // Enumerate Files
            }
        }
    }
}