2011-02-19 2 views
0

이것은 110MB 크기의 sample.log 파일에있는 contains를 보여주는 C#으로 작성한 코드입니다.로그 파일에서 특정 필드를 추출하고 C#을 사용하여 csv 파일로 내 보냅니다.

using System; 
using System.IO; 
using System.Text; 

    class Program 
    { 
     static void Main(string[] args) 
     { 

      FileStream fs = new FileStream("sample.log", FileMode.Open, FileAccess.Read); 
      StreamReader sr = new StreamReader(fs); 
      string StrFromFile; 
      StringBuilder ResultStr = new StringBuilder(); 


      while ((StrFromFile = sr.ReadLine()) != null) 
      { 
      // your separator char seems to be char 1 
      string[] SplitStrs = StrFromFile.Split(new char[] {(char)1});   
      for (int i = 0; i < SplitStrs.Length; i++) 
      { 
       if (SplitStrs[i].StartsWith("52=")) 
       { 
        ResultStr.Append(SplitStrs[i] + " "); 
       } 
       else if (SplitStrs[i].StartsWith("55=")) 
       { 
        ResultStr.Append(SplitStrs[i] + " "); 
       } 
       else if (SplitStrs[i].StartsWith("132=")) 
       { 
        ResultStr.Append(SplitStrs[i] + " "); 
       } 
       else if (SplitStrs[i].StartsWith("133=")) 
       { 
        ResultStr.Append(SplitStrs[i] + " "); 
       } 
       else if (SplitStrs[i].StartsWith("35=")) 
       { 
        ResultStr.Append(SplitStrs[i] + " "); 
       } 
      } 

      Console.WriteLine(ResultStr); 
      ResultStr.Length = 0; 
     } 
      sr.Close(); 
      fs.Close(); 
      Console.ReadKey(); 
     } 
    } 
내가이 출력을 얻고

,

출력 :

35=5 52=20101219-18:05:01.522 
35=A 52=20101219-18:06:01.504 
35=A 52=20101219-18:06:02 
35=1 52=20101219-18:06:02 
35=R 52=20101219-18:06:01.847 55=EUR/USD 

이제 문제는 내가 CSV 파일이 출력을 쓰기 어떻게 은? 좋은 아이디어.

답변

2

보다는 쓰기 자신의 : Log Parser 2.2 :

로그 파서가 보편적 인 쿼리를 같은 로그 파일, XML 파일 및 CSV 파일과 같은 텍스트 기반 데이터에 액세스를 제공하는 강력하고 다양한 도구입니다, 이벤트 로그, 레지스트리, 시스템 및 Active Directory®와 같은 Windows® 운영 체제의 주요 데이터 원본은 입니다. 당신은 이 필요한 정보와 처리 방법을 로그 파서에 알려주십시오. 쿼리의 결과는 텍스트 기반 출력에서 ​​사용자 지정 형식이 될 수 있습니다. 또는 특수 대상 (예 : SQL, SYSLOG 또는 )으로 차트를 유지할 수 있습니다.

로그 파서에 내장 된 입력 형식 다음과 같은 소스에서 데이터를 검색 할 수 있습니다이 :

,
  • IIS 로그 파일 (W3C, IIS, NCSA, 중앙 이진 로그, HTTP 오류 로그, URLScan은 로그, ODBC 로그)
  • Windows 이벤트 로그
  • 일반 XML, CSV, TSV 및 W3C는 - 형식의 텍스트 파일 (예 교환 추적 로그 파일, 개인 방화벽 로그 파일, 윈도우 Media® 서비스는 파일, FTP 로그 파일, SMTP 로그 파일 등)
  • Windows 레지스트리
  • Active Directory가
  • 파일 및 디렉토리 정보
  • 하여 netmon 개체를 기록 .캡 캡처 파일
  • 확장/통합 NCSA 로그 파일을 사용할 수 Linux의

AWStats :

AWStats 로그 형식을 많이 분석 할 수 있습니다 : 아파치 NCSA 통합 로그 파일 (XLF/(로그 파일 (W3C)), WebStar 기본 로그 파일 파일 및 기타 웹, 프록시, wap 또는 스트리밍 서버 로그 파일 (물론 ftp 또는 메일 로그 파일)을 사용하는 것이 좋습니다.

또한

AWStats logfile analyzer 7.0 Documentation: FAQ

: www.filehelpers.com, 구문 분석 및 CSV 파일을 저장하기위한 오픈 소스 닷넷 라이브러리 : Logparser (Microsoft's one) or similar for Unix?

+0

감사 드리며 노력하겠습니다. – vishal

+0

고마워요.하지만 리눅스 OS를 사용하고 있습니다. – vishal

+0

@vishal : 질문이 어디에도 보이지 않습니다 .... –

0

는 filehelpers에서보세요.
매우 쉽고 매우 강력합니다.

관련 문제