PDA

View Full Version : آموزش: چگونه یک فایل Log اتوماتیک ایجاد کنیم



ایمان مدائنی
شنبه 18 خرداد 1392, 16:42 عصر
مطمعنا به این فکر بوده اید که چگونه می شود برنامه ای نوشت که بصورت خودکار از اتفاقاتی که در سایت ما رخ میدهد گزارش گرفته و آن را بصورت یک فایل Log به ما تحویل دهد. در این مقاله نحوه نوشتن کدهای مربوط به این برنامه را آموزش خواهیم داد.

namespace مورد نیاز این برنامه System.IO میباشد.


using System.IO;

این namespace به شما امکان نوشتن و خواندن اطلاعات بر روی یک فایل را میدهد.

کلاس های UserInputMonitor و Client به پروژه اضافه می کنیم:


public class Client
{
static string path = "";
public static void Run(string key, string strpath)
{
path = strpath;
UserInputMoniter monitor = new UserInputMoniter();
new Client(monitor);
monitor.Run(key);
}
private void GenerateLog(object sender, EventArgs e)
{
StreamWriter writer = null;
string strPath = path + "\\log.ini";
try
{
// کدی که در خطهای پایین بصورت کامنت آمده جهت پاک کردن
// اطلاعات قبلی مورد استفاده قرار میگیرد
//if (File.Exists(strPath))
//{
// File.Delete(strPath);
//}
using (writer = File.AppendText(strPath))
{
writer.WriteLine("madaeny.com Link Click At {0}.", DateTime.Now);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
writer.Close();
writer.Dispose();
}
}
Client(UserInputMoniter m)
{
m.OnUserRequest += new UserInputMoniter.UserRequest(this.GenerateLog);
}
}
public class UserInputMoniter
{
public delegate void UserRequest(object sender, EventArgs e);
public event UserRequest OnUserRequest;
public void Run(string key)
{
if (key.Trim() == "www.madaeny.com")
{
OnUserRequest(this, new EventArgs());
}
}
}

و در آخر متد Run از کلاس Client را با پارامتر های مورد نظر درClick Event کلید قرار میدهیم تا از آن Log بگیریم:


protected void btnSite_Click(object sender, EventArgs e)
{
Client.Run(btnSite.Text.Trim(), Server.MapPath("log"));
}

امیدوارم که این مقاله مورد پسند شما بوده باشد. با آرزوی موفقیت برای شما برنامه نویس عزیز.

منبع : Madaeny.com (http://www.madaeny.com/Default.aspx)