【问题标题】:C#.NET - Error Logging and Relative File PathsC#.NET - 错误记录和相对文件路径
【发布时间】:2012-10-01 14:41:00
【问题描述】:

我在 C# 中有一个类,可以在发生异常时将错误消息保存在日志文件中。现在我想将日志文件保存在包含应用程序(在我的情况下是网站)文件的同一文件夹中。我尝试使用 Environment.CurrentDirectory 但是它没有检索到我的网站的路径。我能做些什么来使用指向网站目录内的相对文件路径?

这是班级的代码。如您所见,路径是绝对的。我想将其更改为指向我网站目录中文件夹的相对文件路径。

【问题讨论】:

    标签: c# file logging relative-path


    【解决方案1】:

    通常Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) 返回当前程序集所在的路径。你可以使用

    string logName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyLogFile.log");
    

    创建日志文件名。

    问题实际上是操作系统是否允许登录到应用程序的文件夹。此外,对于 Web 应用程序,日志文件将通过 Web 浏览器公开可见和访问

    【讨论】:

      【解决方案2】:

      对于网站使用:

      HttpContext.Current.Server.MapPath("~/");
      

      【讨论】:

      • 非常感谢 :))) 这正是我所需要的 :)
      • 请注意,将日志文件写入 Web 应用程序的目录可能存在潜在危险。看我的回答。
      • 非常感谢Thorsten :) 我不知道。我想我最好保持原样,因为我的目标是用自定义错误页面替换 SQL Server 提供的调试错误页面,并将错误消息保存在日志文件中,仅供管理员查看。
      【解决方案3】:

      你也可以试试这个解决方案:

      string path  = AppDomain.CurrentDomain.BaseDirectory + "anotherFolder";
      

      这会将应用程序的基本目录和一个文件夹放入项目中!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-14
        • 2018-06-20
        • 2017-12-07
        • 1970-01-01
        • 2015-04-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多