PDA

View Full Version : streamwriter



roya_dibaj
دوشنبه 12 آذر 1386, 11:56 صبح
سلام دوستان من با asp.net2 & c# کار می کنم مشکلی که دارم با atreamwriter است کدی که نوشتم فقط تاریخ و زمان error را توی log نشان می دهد ولی message error را نشان نی دهد . لطفآ کدم را تصحیح کنید




StreamWriter sw = newStreamWriter(Server.MapPath("../config/log.txt"),true);
sw.WriteLine(DateTime.Now.ToString("g"));
// sw.WriteLine(Server.GetLastError().Message);
sw.WriteLine("--------------------------------");
sw.Close();

miladr
دوشنبه 12 آذر 1386, 12:05 عصر
خوب اگه کدت این همینه که واسه این نمی نویسه که دستور نوشتن خطا رو کامنت کردی

roya_dibaj
دوشنبه 12 آذر 1386, 14:34 عصر
نه دوست عزیز چون این کد error می داد من کامنت کردم

miladr
دوشنبه 12 آذر 1386, 14:51 عصر
چه error میداد؟

hamedgh
دوشنبه 12 آذر 1386, 16:12 عصر
یک sw.flush هم ان وسطه بزنی شاید کارت راه بیفتد

Buggsbunny
دوشنبه 12 آذر 1386, 22:35 عصر
متد Server.GetLastError فقط آخرین exception ای که Unhandled باشه در context جاری رو بر می گردونه پس دقت کن که exception رو نباید catch کرده باشی و فکر کنم رویداد Page_Error و یا رویداد Application.Error در global.aspx باید Raise شده باشند تا بتونی به اون دسترسی داشته باشی وقتی که یکی از اینا raise شده باشند می تونی به Server.GetLastError توی بقیه قسمتها هم دسترسی داشته باشی.
مثال:



Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim zero As Integer = 0
Dim err As Double = 10 / CType("x", Integer)
End Sub

Private Sub Page_Error(ByVal sender As Object, ByVal e As System.EventArgs)
Handles MyBase.Error
Response.Write(Server.GetLastError.Message)
End Sub

Behrouz_Rad
دوشنبه 12 آذر 1386, 23:35 عصر
توضیحات Buggsbunny صحیح هست.
به دست آوردن توضیحات آخرین خطای رخ داده تنها از طریق هندل کردن رویدادهای Page_Error (یا Override کردن متد OnError صفحه) و Application_Error -متداول تر- امکان پذیر هست.
ضمن اینکه پس از استفاده ازمتد GetLastError، حتما متد ClearError کلاس Server رو برای خالی شدن Stack از آخرین خطا فراخوانی کنید تا خطا مجددا رخ نده.

موفق باشید.

roya_dibaj
چهارشنبه 14 آذر 1386, 08:48 صبح
مشکل من از اینجاست که getlasterror مقدار null بر می گردونه

Behrouz_Rad
چهارشنبه 14 آذر 1386, 10:36 صبح
مشکل ما هم اینجاست که شما نمیگی که اون تکه کد رو کجا فراخوانی می کنی.
معمولا خانم ها در کش دادن قضیه استاد هستند ;)

roya_dibaj
چهارشنبه 14 آذر 1386, 12:55 عصر
توی صفخه error.aspx ام فراخوانی می کنم که قرار توی log.txt تاریخ و زمان و message خطا را بنویسه ولی وقتی کامنت را ور می دارم run time error میده وقتی هم کامنت را م گذارم فقط تاریخ و زمان را می نویسد

Behrouz_Rad
چهارشنبه 14 آذر 1386, 13:03 عصر
توی صفخه error.aspx ام فراخوانی می کنم که قرار توی log.txt تاریخ و زمان و message خطا را بنویسه ولی وقتی کامنت را ور می دارم run time error میده وقتی هم کامنت را م گذارم فقط تاریخ و زمان را می نویسد
شما مطمئنید پست های Buggsbunny و بنده رو مطالعه کردید؟