C# winform 做一个日志文件,用来记录winform使用者的一些 *** 作

C# winform 做一个日志文件,用来记录winform使用者的一些 *** 作,第1张

在 Program.cs 里面定义一判腔消个方法,参数根据需要自己定圆大义

public static void WriteLog(string param1, string param2)

{

System.IO.File.AppendAllText(

logFileName, //掘知 日志文件名

string.Format("{0}\t{1}\t{2}", DateTime.Now, param1, param2), // 用制表符 \t 分隔字段

Encoding.Default)

}

调用的时候:

Program.WriteLog("添加", "添加的内容")

你可能在输出到显示窗体后加上Application.DoEvents(),当然这种方式,牺牲了速度,这是我这几天刚好写的的代码,让事件的输出在listbox上实时显示,

   /// <summary>

/// 通过ping 获取IP地址,速度快,效率高

/// </summary>

/// <param name="IpHead">默认为192.168.0</param>

public  void EnumComputers(string IPhead="192.168.0")

{

try 腔败{

for (int i = 1 i <= 255 i++)

{   Ping myPing

myPing = new Ping()

myPing.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted)

string pingIP = IPhead + i.ToString()

myPing.SendAsync(pingIP, 肢圆启1000, null)//异步执行PING

Application.DoEvents()//相当于每次循环输出一次就处理所有的当前在消息队列中的Windows消息。

}

}

catch   {}

}

private void _myPing_PingCompleted(object sender, PingCompletedEventArgs e)

{

try      //如查PING成功就获取历如当前IP地址的信息

{      if (e.Reply.Status == IPStatus.Success)

{      IPHostEntry host = Dns.GetHostEntry(e.Reply.Address.ToString())

ipinfo myipinfo = new ipinfo()

myipinfo.ipaddress = e.Reply.Address.ToString()

myipinfo.hostname = host.HostName

myipinfo.iPAddresslist = host.AddressList

ipinfos.Add(myipinfo)

Console.WriteLine(e.Reply.Address.ToString() + "|" +myipinfo.hostname)                       listbox.Items.Add(myipinfo.hostname+"---"+myipinfo.ipaddress)

}

}    catch { }

}

或者你可以用线程委托加回调相关知识来实现,

在winform项目中,打开工具箱,找到EventLog控件拖动到winform窗体,这时在窗体下生成EventLog控件实例

右击EventLog1,在菜单中选择“属性”

在属性窗口中填写Source的值,码兄这个值就是事件查看器中的源纳模神

在窗体上双击,进入窗体加载事件,在这里写下事件日志,如图所示

运行工程,因为代码写在窗体加载事件里,所以工程运行后,日志就写到事件查看器了

打开控制面板,再双击管理工具,在管理工具列表洞亏下,找到事件查看器并双击

在打开的事件查看器中,展开windows日志,点击“应用程序”

在日志里,可以看到我们定义的mylog源


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12332824.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存