代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
IIS6.0日志文件分析代码_1生成访问字段记录到数组中
作者:
xqf222
/ 发布于
2014/2/25
/
451
IIS6.0日志文件分析代码_1生成访问字段记录到数组中
IIS6.0日志文件分析代码_1生成访问字段记录到数组中,只能处理小体积的LOG文件.系统构思有些欠缺.比如文本文件读取到100行好象就CPU占用率很高.然后程序卡死.升级可考虑用文本文件分割方法设计.升级可考虑直接读一条记录马上写到数据里. //添加数据库文件IO引用 using System.IO; using System.Text; using System.Data; using System.Data.SqlClient; //窗体变量定义 /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null; private string BinaryFileType; private string BinaryFilePath; private int BinaryFileLength; private int totalLogFileLine=0; private static int splitLineNumber=0; private void button1_Click(object sender, System.EventArgs e) { this.button1.Enabled=false; //调用打开文件对话框获取要打开的文件WORD文件,RTF文件,文本文件路径名称 OpenFileDialog opd = new OpenFileDialog(); opd.InitialDirectory = @"C:/WINDOWS/system32/LogFiles"; opd.Filter = "日志文档(*.log)|*.log|Word文档(*.doc)|*.doc|文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文档(*.*)|*.*"; opd.FilterIndex = 1; if (opd.ShowDialog() == DialogResult.OK && opd.FileName.Length > 0) { try { BinaryFileType=opd.FileName.Substring(opd.FileName.LastIndexOf(".")+1).ToUpper(); BinaryFilePath=opd.FileName; FileStream fs = new FileStream(opd.FileName, FileMode.OpenOrCreate, FileAccess.Read); BinaryFileLength=(int)fs.Length; StreamReader myStreamReader=new StreamReader(fs);//使用StreamReader类来读取文件 myStreamReader.BaseStream.Seek(0,SeekOrigin.Begin);//从数据流中读取每一行,直到文件的最后一行,并在richTextBox1中显示出内容 this.richTextBox1.Text=""; string strLine=myStreamReader.ReadLine(); int LineSoftware=0; int LineVersion=0; int LineDate=0; int LineFields=0; int LineContent=0; ArrayList MySoftwareArray=new ArrayList(); ArrayList MyVersionArray=new ArrayList(); ArrayList MyDateArray=new ArrayList(); ArrayList MyFieldsArray=new ArrayList(); ArrayList MyContentArray=new ArrayList(); ArrayList MyLineArray=new ArrayList(); //定义日志数据表格 DataTable MyLogTable = new DataTable(); MyLogTable.Columns.Add(new DataColumn("LogSoftware",typeof(string))); MyLogTable.Columns.Add(new DataColumn("LogVersion",typeof(string))); MyLogTable.Columns.Add(new DataColumn("LogDate",typeof(string))); MyLogTable.Columns.Add(new DataColumn("LogFields",typeof(string))); MyLogTable.Columns.Add(new DataColumn("LogContent",typeof(string))); while(strLine!=null) { this.richTextBox1.Text+= strLine+"/n"; if(strLine.Substring(0,10)=="#Software:") { LineSoftware+=1; MySoftwareArray.Add(strLine.Substring(10,strLine.Length-10)); } else { if(strLine.Substring(0,9)=="#Version:") { LineVersion+=1; MyVersionArray.Add(strLine.Substring(9,strLine.Length-9)); } else { if(strLine.Substring(0,6)=="#Date:") { LineDate+=1; MyDateArray.Add(strLine.Substring(6,strLine.Length-6)); } else { if(strLine.Substring(0,8)=="#Fields:") { LineFields+=1; MyFieldsArray.Add(strLine.Substring(8,strLine.Length-8)); } else { MyContentArray.Add(strLine); DataRow newLogRow=MyLogTable.NewRow(); newLogRow["LogSoftware"]=MySoftwareArray[splitLineNumber].ToString(); newLogRow["LogVersion"]=MyVersionArray[splitLineNumber].ToString(); newLogRow["LogDate"]=MyDateArray[splitLineNumber].ToString(); newLogRow["LogFields"]=MyFieldsArray[splitLineNumber].ToString(); newLogRow["LogContent"]=MyContentArray[LineContent].ToString(); MyLogTable.Rows.Add(newLogRow); if(splitLineNumber!=LineSoftware) { MyLineArray.Add(LineContent); } else { splitLineNumber+=1; } LineContent+=1; //arr[LineContent]=new LogRsData(strLine, "Les Paul", LineContent); } } } } strLine=myStreamReader.ReadLine(); totalLogFileLine+=1; } myStreamReader.Close();//关闭此StreamReader对象 fs.Close(); this.richTextBox1.Text+= ":"+ LineSoftware+":"+LineVersion+":"+LineDate+":"+LineFields+":"+LineContent+"/n"; this.dataGrid1.DataSource =MyLogTable; this.textBox2.Text=BinaryFilePath; this.textBox3.Text="0"; this.textBox4.Text=totalLogFileLine.ToString(); this.textBox5.Text=BinaryFileLength.ToString(); } catch(Exception ex) { MessageBox.Show(ex.Message,"打开文件错误"); } } this.button1.Enabled=true; }
试试其它关键字
IIS6.0日志
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
xqf222
贡献的其它代码
(
82
)
.
VB编写的登录局域网内的sql2000数据库服务器
.
ASP .NET登录界面用户验证码
.
VB操作ACCESS数据库
.
批量发送邮件程序
.
批量抓取网页代码中的HTTP和邮件地址
.
禁止站外提交参数测试
.
FTP网站文件到本地的
.
调用对应的应用程打开文件
.
抓取邮件内容解析
.
保存文件时候的弹出选择要保存的文件夹带新建文件夹效
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3