如何使用Access数据库在C#编程中修复和创建日志

时间:2019-02-11 11:42:14

标签: c# database ms-access-2007

我的问题是我无法编写日志代码(记录您在程序中执行的每个操作的日志)。因此,我问您如何创建日志,而我在这里有此代码。我认为它是用于创建日志的,但是我不知道如何编辑必须在下面的代码中编辑的内容。有人可以帮我吗?

public class LogWriter
    {
        private string m_exePath = string.Empty;
        public LogWriter(string logMessage)
        {
            LogWrite(logMessage);
        }
        public void LogWrite(string logMessage)
        {
            m_exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            try
            {
                using (StreamWriter w = File.AppendText(m_exePath + "\\" + "LOGG.txt"))
                {
                    Log(logMessage, w);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("new"+ex);
            }
        }

        public void Log(string logMessage, TextWriter txtWriter)
        {
            try
            {
                txtWriter.Write("\r\nLog Entry : ");
                txtWriter.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
                    DateTime.Now.ToLongDateString());
                txtWriter.WriteLine("  :");
                txtWriter.WriteLine("  :{0}", logMessage);
                txtWriter.WriteLine("-------------------------------");
            }
            catch (Exception ex)
            {
                MessageBox.Show("old"+ex);
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

我建议您考虑使用日志记录框架,如果您可以实际使用除已显示的此类之外的其他方法。查看Serilog甚至Nlog。它们为线程安全性和效率精心设计。

要使用该类或任何类(非静态),请使用new创建一个实例:

LogWriter logger = new LogWriter("a message here..");

不幸的是,此类的设计是为了使您无法在不编写日志条目的情况下实例化它,因此此时您将获得“此处有消息...”日志。

现在您有了一个实例,可以在其上调用方法,例如:

logger.LogWrite("This is a log message...");

您应该能够在与程序相同的文件夹中的LOGG.txt文件中看到日志条目。

不要仅凭此记录器来考虑这一点。如果您有更多编程经验,那么您将已经知道该如何做。花一点时间在教程上会花费很多时间。