일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 포토샵
- 네오커머스
- laravel
- 월회고
- xps
- 디버그
- X보이스
- SENTRY
- monolog
- aws
- 일러스트 고해상도
- codeigniter3
- 개발기록
- 어도비
- ami
- ENA
- 고해상도
- php
- 국가번호목록 #전화번호국가코드 #퇴근을원합니다
- Codeigniter
- XPS15
- 포토샵 고해상도
- 디-버그
- X라소프트
- Dell
- 델코리아
- 팬마음
- xps15 9550
- 일러스트
- Today
- Total
Good Day
[Codeigniter] Monolog를 사용해보자 본문
이번에 새롭게 API 서버를 만들면서 Monolog를 써보리라 다집하고 Log 클래스와 통합작업을 진행했다.
기존에 이미 많이들 사용하는 Codeigniter용 클래스가 있었는데... 아무래도 그닥 별로 내키지 않아 새로 작성했다.
(https://github.com/search?q=codeigniter+monolog)
한 대여섯개 있는데 그중에 하나인 stevethomas/codeigniter-monolog (https://github.com/stevethomas/codeigniter-monolog, 이하 "기존 라이브러리"라 칭함.)가 시초고 이걸 대부분 포크해서 조금 수정해서 쓰는 듯 했다.
코드 자체에 대해서 크게 불만은 없는데, 이전에 몇번 코어 클래스 확장하면서 했던 경험으로는 switch 때려박고 뭐 로드하고 하면서 힘들게 하느니 요즘 스타일에 맞게? 아니면 좀 쓰기 쉽게? 만들고자 작성해봤다.
1. 기존 라이브러리(https://github.com/stevethomas/codeigniter-monolog)
- CI Log 자체를 대체하게 생성
- Config 폴더 내에 monolog.php로 Config 데이터 생성
- 사용할 핸들러를 먼저 로드(코드상에선 File, Hipchat, New Relic)
- 각각의 핸들러를 선언하고 config에 따로 선언한 handlers를 돌면서 switch까지 통해서 핸들러를 생성
- 사용
2. 신규 라이브러리(https://github.com/UnRyongPark/codeigniter-3-monolog)
- 그냥 CI Log 자체를 상속 받아서 필수 값들은 그냥 CI Log에서 끌어다 사용.
- 필요 핸들러에 대해서 별도로 로드하게 처리,
- 핸들러 선언부를 method로 호출할 수 있게 만들어서 모든 핸들러 선언을 위해 n번동안 n번의 분기문이 발생시키지 않도록 처리
- 기존 코드들에서 log 기록 부분 간소화
사실 저렇게 동적으로 메서드 호출하는게 권고하지는 않을 수 있는데, 굳이 switch문 뺑뺑이 돌릴 필요는 없을 것 같고,
당장 config를 생성해서 돌릴만큼 Monolog가 이것저것 선언이 필요치는 않아 config파일도 따로 빼지 않았다.
라이브 하고 테스트까지 했는데 별 문제 없는 것이 잘 된다.
'개발 > PHP' 카테고리의 다른 글
[Codeigniter With Sentry] Sentry 붙이기 - 1. 코어 클래스 교체버전 (0) | 2016.12.29 |
---|---|
[PHP7] REQUEST 값 가져올때 클래스 내에 static 선언한 것과 안한 함수의 속도 비교 (0) | 2016.10.28 |
[PHP7] foreach와 while(list()=each()) 간단 성능비교 (0) | 2016.10.27 |