관련지식
logger
리눅스에서 로그를 볼땐 대부분 tail
을 이용하지만, 윈도우에선 기본으로 제공하는 명령어가 없죠. mTAIL
은 윈도우에서 사용가능한 로그 뷰어입니다. 윈도우에서 사용 가능한 로그 뷰어는 여러 종류가 있는데 그중에서도 mTAIL
을 선호하는 이유는 아래 두가지가 큽니다.
- 인코딩 지원이 좋다
- 로그에 컬러 지원이 가능하다
mTail 홈페이지 : http://ophilipp.free.fr/op_tail.htm
화면에서 조금 내려보면 다운로드 링크, 컬러링을 위한 샘플파일, 문서파일 링크가 있습니다. 무료 프로그램인데 지금까지도 유지보수를 하고 있네요. 최근 업데이트 날짜는 2019년 9월 9일 입니다.
mTail.exe
파일만 있으면 로그를 보는데 문제가 없지만 로그에 컬러를 적용하기 위해서는 mtail_cc.ini
파일이 실행파일과 같은 경로에 있어야 합니다.
mtail_cc.ini
파일 작성방법을 간단하게 알아보겠습니다. mtail_cc.ini
파일은 아래와 같은 구조로 만들어져 있습니다.
[Sample0]
Hint='Line hightlight'
RuleName0=Error Messages
RuleScope0=line
RuleMode0=match
SimpleMatch0x0='*err*'
TextColor0=$8000
BackColor0=$FFFFFF
[Sample1]
Hint='Word and line color coding'
WordSeparator='.;,:!·"'^+-*/\ `[]()€{}?|%=<>'
RuleName0=ERROR Messages Line in RED and stop processing rules
RuleScope0=line
RuleMode0=match
RuleStopOnOk0=Y
SimpleMatch0x0='*# *'
TextColor0=$00
BackColor0=$FF
[이름]
에는 해당 섹션에 대한 이름이 들어갑니다. 즉 위의 설정에선 Sample0
과 Sample1
이란 섹션이 있는 것이죠. 섹션에는 컬러를 적용하고 싶은 룰을 지정할수 있습니다. 하나의 로그 파일에는 하나의 섹션만 적용 가능하므로 하나의 섹션에는 여러개의 룰을 만들수 있습니다. 위 샘플은 각 섹션별로 한개의 룰만 있기 때문에 임의의 샘플 로그 파일을 가지고 새로 룰을 만들어보겠습니다. 사용할 샘플 로그는 아래와 같습니다.
2020-01-10 07:58:58.063 - info: [127.0.0.1][filter.js][line:26] - /js/util.js?rev=16
2020-01-10 07:58:58.115 - info: [127.0.0.1][filter.js][line:26] - /lib/tabler/js/vendors/bootstrap.bundle.min.js.map
2020-01-10 07:58:59.777 - info: [127.0.0.1][filter.js][line:26] - /sw.js
2020-01-10 08:01:05.470 - info: [127.0.0.1][scheduler.js][line:93] - schedule joonggonara0 running
2020-01-10 08:01:07.540 - info: [127.0.0.1][joonggonara.js][line:39] - 중고나라 모니터링 시작
2020-01-10 08:01:10.593 - error: [127.0.0.1][push.js][line:46] - Error: Command failed: curl -X POST
2020-01-10 08:04:43.593 - info: [127.0.0.1][app.js][line:73] - serverIP : 127.0.0.1
2020-01-10 08:18:40.065 - debug: [127.0.0.1][edu.js][line:27] - china db loaded
2020-01-10 08:21:47.431 - debug: [127.0.0.1][DBHandler.js][line:33] - select * from schedule where read=0 order by idx asc
가장 먼저 섹션 이름은 Color1
로 만들겠습니다. 그리고 단어를 구분하는 문자는 공백, 대괄호([, ])로 지정합니다.
[Color1]
WordSeparator=' []'
보통 에러 로그는 눈에 확 띄는게 좋을것입니다. 빨간색 배경을 넣어보겠습니다. 아래 룰은 error:
가 포함된 라인에 빨간색 배경을 넣게 됩니다.
[Color1]
WordSeparator=' []'
RuleName0=Error color
RuleScope0=line
RuleMode0=match
RegExpMatch0x0='[\w\W]+error\:[\w\W]+'
BackColor0=$0000FF
로그중에서 DB 쿼리는 다른 로그보다 구분되면 좋겠습니다. [DBHandler.js]
가 포함된 로그에 대해선 파란색 글씨로 보이게 해보겠습니다.
RuleName1=DB log
RuleScope1=line
RuleMode1=match
RegExpMatch1x0='[\w\W]+\[DBHandler.js\][\w\W]+'
TextColor1=$FF0000
두개의 룰을 비교하면 RuleName, RuleMode 등의 뒤의 숫자가 다르다는것을 볼수 있습니다. 각 룰마다 고유의 숫자를 가지고 있어야 하기 때문에 룰 갯수만큼 숫자가 증가되어야 합니다. 그리고 또 BackColor와 TextColor에 있는 색깔이 #000000
형태가 아니라 $000000
으로 되어있습니다. 왜 이런 규칙이 되었는지 모르겠지만 #123456
값으로 적용하려면 $654321
로 작성해야합니다. 거꾸로 되어있죠. 따라서 이번엔 #123456
색깔이 적용된 룰을 만들어보겠습니다.
RuleName2=keyword
RuleMode2=match
SimpleMatch2x0='filter.js'
BackColor2=$654321
RuleScope
값은 디폴트가 word
속성이기 때문에 이번 룰에선 생략했습니다. 그리고 단순히 filter.js 단어에만 적용할것이기 때문에 SimpleMatch
를 적용했습니다. 년-월-일
값에도 같은 컬러를 적용해볼까요? 새로운 룰을 추가할 필요없이 매칭 규칙만 추가하면 됩니다.
RuleName2=keyword
RuleMode2=match
SimpleMatch2x0='filter.js'
SimpleMatch2x1='????-??-??'
BackColor2=$654321
이외에도 다양한 방법으로 로그에 컬러를 적용할수가 있습니다. 공식 홈페이지에 있는 문서를 참고해서 원하는 스타일로 로그를 적용해보시기 바랍니다.
최종샘플
mtail_cc.ini)
[Color1]
WordSeparator=' []'
RuleName0=Error color
RuleScope0=line
RuleMode0=match
RegExpMatch0x0='[\w\W]+error\:[\w\W]+'
BackColor0=$0000FF
RuleName1=DB log
RuleScope1=line
RuleMode1=match
RegExpMatch1x0='[\w\W]+\[DBHandler.js\][\w\W]+'
TextColor1=$FF0000
RuleName2=keyword
RuleMode2=match
SimpleMatch2x0='filter.js'
BackColor2=$654321
샘플 로그
2020-01-10 07:58:58.063 - info: [127.0.0.1][filter.js][line:26] - /js/util.js?rev=16
2020-01-10 07:58:58.115 - info: [127.0.0.1][filter.js][line:26] - /lib/tabler/js/vendors/bootstrap.bundle.min.js.map
2020-01-10 07:58:59.777 - info: [127.0.0.1][filter.js][line:26] - /sw.js
2020-01-10 08:01:05.470 - info: [127.0.0.1][scheduler.js][line:93] - schedule joonggonara0 running
2020-01-10 08:01:07.540 - info: [127.0.0.1][joonggonara.js][line:39] - 중고나라 모니터링 시작
2020-01-10 08:01:10.593 - error: [127.0.0.1][push.js][line:46] - Error: Command failed: curl -X POST
2020-01-10 08:04:43.593 - info: [127.0.0.1][app.js][line:73] - serverIP : 127.0.0.1
2020-01-10 08:18:40.065 - debug: [127.0.0.1][edu.js][line:27] - china db loaded
2020-01-10 08:21:47.431 - debug: [127.0.0.1][DBHandler.js][line:33] - select * from schedule where read=0 order by idx asc
'기타' 카테고리의 다른 글
VSCode에서 최근 열었던 파일기록 삭제하기 (0) | 2020.01.17 |
---|---|
Lubuntu 19.04 리뷰 (0) | 2020.01.14 |
GCP의 SSH 기본 포트 변경 (0) | 2020.01.09 |
Liva Q에 리눅스를 설치한다면? (0) | 2020.01.03 |
설치형 Cloud IDE 초간단 리뷰 (0) | 2019.12.16 |