時間:2023-05-06 22:33:02 | 來源:網(wǎng)站運營
時間:2023-05-06 22:33:02 來源:網(wǎng)站運營
微軟IIS網(wǎng)站日志記錄的相關技巧以及日志日期為什么相差8小時(更新第7次):雖然現(xiàn)在使用PHP Java 制作網(wǎng)站的占大多數(shù),一般使用的是Apache 網(wǎng)站服務器,但使用Windows IIS做為網(wǎng)站服務器的還是有一定的人群。 讀取iis日志到sql serverusing Fasterflect;using System;using System.Collections.Generic;using System.Data.SqlClient;using System.IO;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication2{ // 記錄iis日志到sql server數(shù)據(jù)庫中,并進行查詢 class Program_IISLogFile { static void Main(string[] args) { Console.WriteLine("開始行:"); var startIndex = Console.ReadLine(); Console.WriteLine("結束行:"); var endIndex = Console.ReadLine(); Read("D:/job/test/tu_ex151203.log", int.Parse(startIndex), int.Parse(endIndex)); Console.WriteLine("over"); Console.ReadKey(); } // 數(shù)據(jù)庫連接 const string connectionStr = "user id=sa;password=12345;data source=(local);initial catalog=test"; // 讀取日志文件中的iis操作記錄 public static void Read(string path, int startIndex, int endInex) { StreamReader sr = new StreamReader(path, Encoding.Default); String line; using (SqlConnection conn = new SqlConnection(connectionStr)) { using (SqlCommand cmd = new SqlCommand(connectionStr, conn)) { conn.Open(); int rows = 0; int statIndex = 0; string sql = string.Empty; while ((line = sr.ReadLine()) != null) { statIndex++; if (statIndex < 5 + startIndex) continue; if (endInex <= statIndex - 5) break; try { // Console.WriteLine(line.ToString()); string[] strs = line.ToString().Split(' '); string sql2 = ""; if (strs != null) { for (int i = 0; i < strs.Count(); i++) { sql2 += "'" + strs[i] + "'"; if ((i + 1) < strs.Count()) { sql2 += ","; } } } sql = string.Format(@"insert into [iislog] ([date], [time], [s-ip], [cs-method], [cs-uri-stem], [cs-uri-query], [s-port], [cs-username], [c-ip], [cs(User-Agent)], [cs(Referer)], [sc-status], [sc-substatus], [sc-win32-status], [time-taken]) values({0})", sql2); cmd.CommandText = sql; rows += cmd.ExecuteNonQuery(); } catch (System.Data.SqlClient.SqlException e) { //conn.Close(); Console.WriteLine("插入" + rows.ToString() + "條數(shù)據(jù)!" + e.Message + " sql:" + sql); //continue; } // Console.WriteLine("插入" + rows.ToString() + "條數(shù)據(jù)!"); } } } } #region 數(shù)據(jù)庫相關 /* 數(shù)據(jù)庫表創(chuàng)建語句 CREATE TABLE [dbo].[iislog]( [date] [varchar](50) NULL, [time] [varchar](50) NULL, [s-ip] [varchar](50) NULL, [cs-method] [varchar](5000) NULL, [cs-uri-stem] [varchar](5000) NULL, [cs-uri-query] [varchar](5000) NULL, [s-port] [varchar](5000) NULL, [cs-username] [varchar](5000) NULL, [c-ip] [varchar](5000) NULL, [cs(User-Agent)] [varchar](5000) NULL, [cs(Referer)] [varchar](5000) NULL, [sc-status] [varchar](5000) NULL, [sc-substatus] [varchar](5000) NULL, [sc-win32-status] [varchar](5000) NULL, [time-taken] [varchar](5000) NULL) */ /* 查詢請求次數(shù)較多的url select [cs-uri-stem] + '?' + [cs-uri-query] as '鏈接地址', [sc-status] '狀態(tài)碼', c '請求次數(shù)' from (select [cs-uri-stem], [cs-uri-query], [sc-status], count(1) c from iislog where PATINDEX('%.aspx%', [cs-uri-stem]) <> 0 group by [cs-uri-stem], [cs-uri-query], [sc-status]) tbl order by c desc, '鏈接地址' desc */ #endregion }}
關鍵詞:日志,日期,更新,小時,記錄,技巧,相關
微信公眾號
版權所有? 億企邦 1997-2025 保留一切法律許可權利。