2012-03-29 56 views
2

我在我的應用程序的根目錄上有一個log.txt文件。我希望能夠讓我的日誌類能夠訪問此文件並寫入它。但我不知道如何告訴它在我的代碼中的文件的正確路徑。感謝您的幫助有沒有辦法在我的asp.net應用程序的類中使用Server.MapPath

using (StreamWriter w = File.AppendText("log.txt")) 
    { 
     Log(e.ToString(),w); 
     w.Close(); 
    } 
+1

最好把所有登錄的App_Data,可能是您的應用程序不具有權限的根文件夾 – 2012-03-29 13:28:20

+1

編寫,並考慮:文件.AppendAllText(filename,msg); – 2012-03-29 13:42:47

回答

12

使用

Server.MapPath("~/log.txt") 

得到完整的文件名。

更新:

如果你不是一個ASP頁面內,但在普通班,嘗試:

System.Web.HttpContext.Current.Server.MapPath("~/log.txt") 

更新2: 它看起來像你想製作自己的日誌解決方案。您可以考慮使用現有的解決方案,如NLogLog4Net

+0

我不能將它的類不是一個asp.net類。如果你能,你能告訴我如何? – user516883 2012-03-29 13:29:14

+0

'System.Web.HttpContext.Current.Server'在'MVC6'中的'View'中不可用現在只是'Context',但沒有'Server' – 2016-02-19 08:15:26

1

通常情況下,您將從Web.config中獲取該路徑。
這將是一個物理文件路徑,而不是相對URL路徑。沒有MapPath需要。

最簡單的方法:用設置設計工具創建它,並把它讀作

string fname = Properties.Settings.Default.LogFile; 
+0

好吧,你能給我一個例子,可以說我想將其保存到我的根目錄。 – user516883 2012-03-29 13:29:54

+0

應用程序根目錄或Diskdrive根目錄?順便說一句,既不是一個日誌文件的好選擇。 – 2012-03-29 13:33:46

相關問題