我在 C# 中有一个类,可以在发生异常时将错误消息保存在日志文件中。现在我想将日志文件保存在包含应用程序(在我的情况下是网站)文件的同一文件夹中。我尝试使用 Environment.CurrentDirectory 但是它没有检索到我的网站的路径。我该怎么做才能使用指向网站目录内的相对文件路径?
这是班级的代码。如您所见,路径是绝对的。我想将其更改为指向我网站目录中文件夹的相对文件路径。
我在 C# 中有一个类,可以在发生异常时将错误消息保存在日志文件中。现在我想将日志文件保存在包含应用程序(在我的情况下是网站)文件的同一文件夹中。我尝试使用 Environment.CurrentDirectory 但是它没有检索到我的网站的路径。我该怎么做才能使用指向网站目录内的相对文件路径?
这是班级的代码。如您所见,路径是绝对的。我想将其更改为指向我网站目录中文件夹的相对文件路径。
通常Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
返回当前程序集所在的路径。你可以使用
string logName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyLogFile.log");
创建日志文件名。
问题实际上是操作系统是否允许登录到应用程序的文件夹。此外,对于 Web 应用程序,日志文件将是公开可见的,并可通过 Web 浏览器访问。
对于网站使用:
HttpContext.Current.Server.MapPath("~/");
你也可以试试这个解决方案:
string path = AppDomain.CurrentDomain.BaseDirectory + "anotherFolder";
这会将应用程序的基本目录和项目中的文件夹!