Skip to content

Qvil Blog

[C, Linux] syslog를 이용한 Log출력

c, linux, debug, log, syslog1 min read

Header파일 추가

1#include <syslog.h>

사용 예제

1syslog(LOG_ERR, "[Error : %s][__LINE__ : %d] %s",__FILE__, __LINE__, __FUNCTION__);

printf처럼 사용하세요. 문자열 value를 출력하고 싶다면 %s를 사용

1syslog(LOG_ERR, "[Error : %s][__LINE__ : %d] [__FUNCTION__ : %s] value : ",__FILE__, __LINE__, __FUNCTION__, value);

/var/log/messages 로그확인

1tail -f /var/log/messages

tail은 파일의 마지막 부분을 출력하는 명령어.

옵션

  • f : 마지막 10라인을 실시간으로 출력.
  • F : 파일 변동시 실시간 출력, 로그파일이 변하면 새로운 파일 오픈해서 출력.(명령어 재실행 필요 없음)

분석

sys/syslog.h Source를 보면 LOG_ERR는 에러의 상태를 나타냅니다.

1#define LOG_ERR 3 /* error conditions */

__FILE__이나 __LINE__ 처럼 __ Underscore 두개가 붙은건 문자열 상수 매크로입니다. 파일 이름, 라인 넘버 등을 출력할 수 있습니다. (변수라고 생각하고 코딩하세요 - 이유)

참고