반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

Kurogo Tutorial 12 - Logging in Kurogo -

2012. 5. 21. 22:17 | Posted by 솔웅


반응형

Logging in Kurogo


Kurogo 에는 일반적인 logging과 예외적인 이벤트에 대한 logging이 있습니다. logging 시스템의 목적은 수정될 필요가 있는 중요한 상황에 대해 시스템 관리자에게 알리기 위한 점과 개발자에게 Kurogo code paths를 trace 하고 디버그 할 수 있도록 하기 위함입니다.

디폴트로 Kurogo event들은 SITE_DIR/logs/kurogo.log 에 log 됩니다. 각 entry들은 몇개의 부분들로 구성됩니다.


[date/time] area:priority method URI message


area는 이 메세지를 담당하고 있는 Kurogo component를 string으로 표현합니다. Kurogo는 몇개의 표준 area들을 정의하고 있습니다. 그 외에 개발자들은 필요에 따라 아무런 string을 사용하셔도 됩니다. priority는 이 메세지의 중요성(시급성) 등을 알리는 부분입니다. 이 priority map 들은 syslog function 의 priority들을 따릅니다. function/method는 이 메세지가 어디에서 나왔는지를 알 수 있도록 도와 줍니다. 이 URI는 유저가 본 페이지의 address 입니다.




Log Settings

Kurogo log의 behavior에 영향을 주는 몇가지 세팅이 있습니다. 이것들은 SITE_DIR/config/site.ini 에 위치해 있습니다.

  • KUROGO_LOG_FILE (default LOG_DIR/kurogo.log) - Kurogo log 파일의 위치입니다. 이 위치는 웹서버에 의해 write 가 가능해야 합니다. 여기에 모든 로그 메세지들이 저장되게 됩니다.
  • DEFAULT_LOGGING_LEVEL - logging level을 세팅합니다. 여기서 세팅된 레벨보다 높은 메세지만 log 됩니다. 레벨 이하의 로그는 무시됩니다.  
  • LOGGING_LEVEL[area] - 특별 area에 대한 logging 레벨을 세팅합니다. 이 기능은 개발자들이 특정 area에 대한 메세지만 보고 싶을 때 유용하기 사용하실 수 있습니다. 이 레벨은 이 area 에서 DEFAULT_LOGGING_LEVEL를 override 할 겁니다. 여러분은 원하는 만큼의 area를 override 할 수 있습니다. 

Priority Levels

Kurogo에 의해 사용되는 priority level constants가 있습니다. 대부분의 시스템에서는 이것을LOG_WARNING으로 세팅합니다. 이것을 LOG_INFO나 LOG_DEBUG로 세팅하면 여러분은 더 많은 메세지를 보실 수 있습니다. 일반적으로 디버깅을 위해서는 이것을 warning 보다 낮게 세팅하고 있습니다.

  • LOG_EMERG - system is unusable
  • LOG_ALERT - action must be taken immediately
  • LOG_CRIT -critical conditions
  • LOG_ERR - error conditions
  • LOG_WARNING - warning conditions
  • LOG_NOTICE -normal, but significant, condition
  • LOG_INFO -informational message
  • LOG_DEBUG - debug-level message

Standard areas in Kurogo

아래는 logging 메세지들을 구분하기 위한 Kurogo 내부 area들에 의해 사용되는 area들 입니다. 개발자들은 이 임의의 area를 만들어서 사용하실 수 있습니다.

  • admin - Admin console
  • auth - Authentication and authorization
  • config - Configuration
  • data - Used by libraries that retrieve external data.
  • db - Database
  • deviceDetection - Device Detection
  • exception - Exceptions
  • kurogo - Core functions including initialization
  • module - General module events
  • session - User session management
  • template - HTML templates

Logging in your module or library

Kurogo::log($priority, $message, $area) 메소드는 log에 메세지를 보냅니다. $priority 파라미터는 priority level constants 라야 합니다. message는 string 이어야 하고 area는 여러분이 log 하고 싶어하는 area로 string 이어야 합니다. 여러분은 여러분이 필요한 area에 대해 logging 세팅을 하기 위해 LOGGING_LEVEL[area]를 사용하실 수 있습니다.



반응형