求 c# IIS日志分析源码 在网上找不到。只有自己写了,可是又没有精力写。因为无论web form还是win form都不怎么熟。所以恳请大家谁有源码,发给我吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读取 IIS日志 到 数据库 public bool WriteToDB(string file) { StreamReader myRead = new StreamReader(file); DataTable myTable = new DataTable(); while (!myRead.EndOfStream) { string line = myRead.ReadLine(); if (line.StartsWith("#Fields")) { if (myTable.Rows.Count > 0) { dataTableToServer(myTable); } myTable = new DataTable(); string[] Fields = line.Split(' '); for (int i = 1; i < Fields.Length - 1; i++) { myTable.Columns.Add(Fields[i]); } } else if (line.StartsWith("#")) { continue; } else { string[] contents = line.Split(' '); DataRow myRow = myTable.NewRow(); myRow.ItemArray = contents; myTable.Rows.Add(myRow); } } myRead.Close(); //到此,便把日志文件变成DataTable的形式了,下面的是把它写进数据库。 //代码略有删节。 if (myTable.Rows.Count > 0) { dataTableToServer(myTable); } return true; } private void dataTableToServer(DataTable myTable) { string connstr = SqlHelper.getConnStr(); //string connstr = @"Data Source=.\SQLEXPRESS;Initial Catalog=iislog;User Id=sa;Password=sa;pooling=true;Timeout=60"; foreach (DataColumn col in myTable.Columns) { resultTable.Columns.Add(col.ColumnName ); } using (SqlBulkCopy myBulk = new SqlBulkCopy(connstr)) { myBulk.DestinationTableName = "LogFile"; foreach (DataColumn myColumn in myTable.Columns) { myBulk.ColumnMappings.Add(myColumn.ColumnName, myColumn.ColumnName); } myBulk.WriteToServer(resultTable); } } 自己采集吧然后分析如果数据量不到,就用baidu,google免费的效果比你自己的好 http://www.baidu.com/s?wd=iis%C8%D5%D6%BE%B7%D6%CE%F6%B9%A4%BE%DF 一个小问题 .net 如何编写插件~~~~~~~~~~~~~~~~~~~~~~~~ 关于服务器控件的问题,请高手帮助一下,谢谢! 分页排序问题 Fckeditor 字体问题 过年了新年快乐 大虾们都来看看 大家帮帮忙呀!急死了。 关于asp.net 2.0的问题 100分 上传文件问题 寻求合作伙伴~~~ 请问如何在两个web窗体之间传递差数,并且如何调用? 调试的时候出现错误:“值不能为空。参数名: String” 怎么样读取JSON?
public bool WriteToDB(string file)
{
StreamReader myRead = new StreamReader(file);
DataTable myTable = new DataTable();
while (!myRead.EndOfStream)
{
string line = myRead.ReadLine();
if (line.StartsWith("#Fields"))
{
if (myTable.Rows.Count > 0)
{
dataTableToServer(myTable);
}
myTable = new DataTable();
string[] Fields = line.Split(' ');
for (int i = 1; i < Fields.Length - 1; i++)
{
myTable.Columns.Add(Fields[i]);
}
}
else if (line.StartsWith("#"))
{
continue;
}
else
{
string[] contents = line.Split(' ');
DataRow myRow = myTable.NewRow();
myRow.ItemArray = contents;
myTable.Rows.Add(myRow);
}
}
myRead.Close();
//到此,便把日志文件变成DataTable的形式了,下面的是把它写进数据库。
//代码略有删节。
if (myTable.Rows.Count > 0)
{
dataTableToServer(myTable);
}
return true;
}
private void dataTableToServer(DataTable myTable)
{
string connstr = SqlHelper.getConnStr();
//string connstr = @"Data Source=.\SQLEXPRESS;Initial Catalog=iislog;User Id=sa;Password=sa;pooling=true;Timeout=60";
foreach (DataColumn col in myTable.Columns)
{
resultTable.Columns.Add(col.ColumnName );
}
using (SqlBulkCopy myBulk = new SqlBulkCopy(connstr))
{
myBulk.DestinationTableName = "LogFile";
foreach (DataColumn myColumn in myTable.Columns)
{
myBulk.ColumnMappings.Add(myColumn.ColumnName, myColumn.ColumnName);
}
myBulk.WriteToServer(resultTable);
}
}
然后分析
如果数据量不到,就用baidu,google免费的
效果比你自己的好