我正在尝试创建一个生成日志文件的C#控制台应用程序。我想对日志文件的存储位置有一定的灵活性。
我尝试使用Settings.settings文件:
名称:logDrive 输入:string 适用范围:应用 值:C:\ Scripts \ Logs
在我的代码中,我正在使用:
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:\ Scripts \ ServiceDesk \ Logs” logFile =“3-23-2009 1:20 PM.log”
有没有人对更好的方法和/或我做错了什么有任何想法/建议?
答案 0 :(得分:13)
您不能在文件名中包含:
。更好的方法可能是使用像
YYYYMMDD_HHMMSS.log
(例如20090323_231245.log
)
这样做的好处是可以轻松排序,并且不会使用任何无效字符。
你可以使用
来解决这个问题string logFile = string.Format("{0:yyyyMMdd_HHmmss}.log", DateTime.Now);
备注:强>
另外,正如评论中所建议的那样,您应该考虑使用Path.Combine
来组合您的目录和文件名。这将有助于缓解尾随路径分隔符等问题。
答案 1 :(得分:0)
您还需要在“logDrive”中添加一个尾部斜杠。即:
logDrive = "C:\Scripts\ServiceDesk\Logs\"
..或使用其他答案中建议的Path.Combine