Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#如何创建用户活动日志?_C#_Winforms_Logging - Fatal编程技术网

c#如何创建用户活动日志?

c#如何创建用户活动日志?,c#,winforms,logging,C#,Winforms,Logging,我已经创建了一个简单的应用程序,将文件从我的计算机复制到闪存驱动器,我希望有一个用户活动日志。 比如: 启动和关闭应用程序的时间。 复制的文件夹或文件的路径以及目标的路径。 新创建文件夹的时间和名称…等等 我还没有尝试任何东西,因为我不知道如何去做 我需要将记录的数据保存到文本文件中。我正在使用Windows窗体 提前感谢。使用System.Diagnostics命名空间,使用事件日志: 资料来源: 当我想要一个简单的文本文件日志时,我使用了类似的方法: static void LogT

我已经创建了一个简单的应用程序,将文件从我的计算机复制到闪存驱动器,我希望有一个用户活动日志。 比如: 启动和关闭应用程序的时间。 复制的文件夹或文件的路径以及目标的路径。 新创建文件夹的时间和名称…等等

我还没有尝试任何东西,因为我不知道如何去做

我需要将记录的数据保存到文本文件中。我正在使用Windows窗体


提前感谢。

使用System.Diagnostics命名空间,使用事件日志:

资料来源:


当我想要一个简单的文本文件日志时,我使用了类似的方法:

    static void LogThis(string logMessage)
    {
        Console.WriteLine(logMessage);
        using (StreamWriter writer = new StreamWriter(FileDate() + ".txt", true))
        {
            writer.WriteLine(logMessage);
            writer.WriteLine();
        }
    }

    static string FileDate()
    {
        return DateTime.Now.ToString("yyyy") + "-" + DateTime.Now.ToString("MM") + "-" + DateTime.Now.ToString("dd");
    }
用法:

LogThis("I'm logging this!");

为什么不直接写一个文本文件呢?然后使用@safetyOtter的答案。简单文本文件编写器。不过,他的解决方案中存在并发性问题。你可能想调查一下。设置起来有点复杂,但可以处理您想要的一切。我做了一个基本的
用户活动记录器实现,它可以连接各种事件
,您可以在这里看到:如何处理并发性?@paqogomez我认为只需删除字符串并将函数留空即可。只是一个猜测。@Zaid_Code36,我问otter如果多线程应用程序使用这段代码会发生什么。文件可能被锁定并抛出错误。@paqogomez如果我在多线程应用程序中,我使用事件日志记录。如果我在一个快速且肮脏的实用程序app中,我会使用它。@Zaid_code 36
字符串logMessage
是您想要记录的文本,在您的表单加载事件调用
LogThis(“app start”)或其他什么。不过paqogome是对的,如果这是一个多线程应用程序,或者如果你想要更多的全功能文本日志,你应该查看Log4Net
LogThis("I'm logging this!");