通常放置日志文件在哪里?

时间:2016-02-20 11:27:46

标签: c# .net logging

我的应用没有管理员权限。日志文件的典型位置在哪里?该应用将安装到c:\programfiles\myapp

2 个答案:

答案 0 :(得分:1)

如果您正在谈论Windows桌面应用程序,那么您应该查看枚举Environment.SpecialFolder并使用Environment.GetFolderPath将日志存储在CommonApplicationData

 // This should be the path to C:\ProgramData
 string commonDataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);

 // Now add your app name to the path above
 string myAppDataPath = Path.Combine(commonDataPath, "MyAppName");

 // Create the directory specific for your app (no error if it exists)
 Directory.CreateDirectory(myAppDataPath);

 // Prepare a log file with an embedded time stamp for today
 string logFile = "MyAppData" + DateTime.Today.Year + 
                                DataTime.Today.Month.ToString("D2") +
                                DataTime.Today.Day.ToString("D2") + ".LOG";

 // And finally here the name for your logging activities
 string fullLogFile = Path.Combine(myAppDataPath, logFile);

请注意,根据this question,只有创建此文件的用户才能在那里写入。同一台机器上的其他用户没有。但是,这可以使用ApplicationData而不是CommonApplicationData进行更改,但这也意味着每个用户都有自己的日志。如果您想为所有用户提供一个商店位置,则由您来创建特定文件夹并应用所需的权限集。此外,如果您想向用户显示这些文件,则可以使用枚举MyDocuments将它们放入其文档文件夹中。

答案 1 :(得分:-1)