您的位置:首页 > 理论基础 > 计算机网络

C#常用的写LOG、读取INI和网络是否畅通的静态方法

2018-02-14 11:54 323 查看
用于net 2.0版本,采用静态,可随时调用。using System;
using System.Collections.Generic;
using System.Text;

using System.IO;
using System.Runtime.InteropServices;
using System.Net.NetworkInformation;

namespace LocalWeight
{
public class ReadWriteFile
{
#region API函数声明

[DllImport("kernel32")]//返回0表示失败,非0为成功
private static extern long WritePrivateProfileString(string section, string key,
string val, string filePath);

[DllImport("kernel32")]//返回取得字符串缓冲区的长度
private static extern long GetPrivateProfileString(string section, string key,
string def, StringBuilder retVal, int size, string filePath);

#endregion

#region 写log日志
public static void WriteLog(String msg)
{

string fileName = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\log\\" + DateTime.Now.Date.ToString("yyyyMMdd") + ".log";
string path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\log";

if (!Directory.Exists(path))//判断是否有该文件夹
Directory.CreateDirectory(path);

if (!File.Exists(fileName))//判断日志文件是否为当天
File.Create(fileName).Close();//创建文件
StreamWriter writer = File.AppendText(fileName);//文件中添加文件流
//writer.WriteLine("");
try
{
writer.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + msg);
writer.Flush();
writer.Close();

}
catch (Exception e)
{

}

}
#endregion

#region 读Ini文件

public static string ReadIniData(string Section, string Key)
{
string iniFilePath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\mesconfig.ini";
if (File.Exists(iniFilePath))
{
StringBuilder temp = new StringBuilder(1024);
GetPrivateProfileString(Section, Key, null, temp, 1024, iniFilePath);
return temp.ToString();
}
else
{
return String.Empty;
}
}

#endregion

#region call前判断
public static bool networkIsOk(string atIP)
{
bool online = false; //是否在线
Ping ping = new Ping();
PingReply pingReply = ping.Send(atIP);
for (int i = 1; i < 11; i++)
{
if (pingReply.Status == IPStatus.Success)
{
online = true;
break;
}
else
{
WriteLog("第" + i.ToString() +"次与" + atIP + "无法连通");
}
}
return online;
}
#endregion
}
}
以下为示例:
public string AppSeverIP = ReadWriteFile.ReadIniData("SERVER", "ServerIP");
ReadWriteFile.WriteLog(e.ExceptionObject.ToString());//捕获异常,写入日志,辅助分析

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  log ping ini C# io