我试图创建一个C#控制台应用程序将生成一个日志文件。我想有一定的灵活性与其中的日志文件将被保存。

我尝试使用Settings.settings与文件:

名称:logDrive 类型:字符串 适用范围:应用 值:C:\脚本\日志

在我的代码,我使用:

string logFile = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
logFile = logFile.Replace(@"/", @"-").Replace(@"\", @"-") + ".log";
string logDrive = Properties.Settings.Default.logDrive;
StreamWriter output = new StreamWriter(logDrive + logFile);

当编译上述我得到的错误消息“给定路径的格式不支持。”

如果有帮助,为的值:

logDrive = “C:\脚本\的ServiceDesk \日志” 日志文件= “2009年3月23日1:20 PM.log”

有没有人有任何想法/一个更好的办法的建议和/或我在做什么错了?

有帮助吗?

解决方案

可以不包括在文件名中一个:。一种更好的方法可能是使用像

的格式
YYYYMMDD_HHMMSS.log

(例如20090323_231245.log

这具有容易排序的权益,并且它不使用任何无效字符。

您可以用得到这个

string logFile = string.Format("{0:yyyyMMdd_HHmmss}.log", DateTime.Now);

备注:

此外,如在评论中建议,你应该考虑使用Path.Combine到你的目录和文件名结合起来。这将有助于减轻与尾随路径分隔符等问题。

其他提示

您还需要一个结尾斜杠添加到您的“logDrive”。即:

logDrive = "C:\Scripts\ServiceDesk\Logs\"

..或使用Path.Combine的建议中的其他回答

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top