[요청] 리눅스/유닉스 로그 시스템
글쓴이: nTachyon / 작성시간: 화, 2004/03/16 - 11:30오전
제목처럼 조언 요청드립니다.
보통은 프로그램 시에 파일에 로그 남기는 코드를 vararg 파라메트를 이용해 직접 작성하는데...
리눅스/유닉스에서 기본적으로 제공되는 로그 시스템이 있나요?
자바쪽의 JBOSS를 보다 보니, 그쪽에 로그 시스템이 있는 듯 해... 이런 것도 정형화되어 있다면... 그리고 그런게 혹 리눅스/유닉스 쪽에 있다면 하는 마음에 글 올려봅니다.
검색으로는 Linux-Log 라는 프로젝트가 중단된 상태더군요.
혹 님들은 어떤 로그 시스템을 사용하시는지요?
좋은 하루 되세요
Forums:
man 3 syslogsyslog 로 로그를 넘겨주면 안되나요?
man 3 syslog
syslog 로 로그를 넘겨주면 안되나요?
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
특정 프로그램의 로그를 남기려다 보니...로그를 syslog 밑이
특정 프로그램의 로그를 남기려다 보니...
로그를 syslog 밑이 아니라, 제가 지정한 특정 경로에 log를 남기고자 하는데...
syslog.conf 를 건드려서
이렇게 추가했지만,
이런 식의 코드로는 컴파일이 힘들더군요. 위 코드의 "?????" 를 어떻게 처리할지 몰라서-_-;
결론은 좀 더 간편한(게으름의 소치 -_-;) 다른 로그 시스템이 없나 찾아보던 중이었답니다.
원 질문의 본질이 바뀌는 것은 아닐 듯 하니...
혹 syslog에 대한 자세한 설명 부탁 드립니다
좋은 하루 되세요~~~
[quote="nTachyon"]결론은 좀 더 간편한(게으름의 소치 -_
syslog 시스템을 이해하시면 그만큼 간편한 로그 시스템도 없을텐데요.
위와같이 추가했다면 로그를 열때는
openlog("shawn", LOG_PID, LOG_USER)
정도로 열면 되겠지요.
syslog(?????, "어쩌고저쩌고...");
??? 부분에 들어가는건 로그 등급입니다. LOG_ALERT, LOG_DEBUG 등... man 페이지에 잘 나와있으니 참고하세요.
로그 시스템에 대해 어느정도 핸들링 할 수 있겠네요.
어제밤에 이것저것 테스트하면서 어느정도 로그 시스템에 대해 파악이 된 것 같습니다.
하지만, 몇가지 의문에 대해 한번 더 확인하고 싶네요...
1) syslog 같은 경우엔 strace로 동작을 보니 udp로 데이터를 syslogd 에게 쏘는 것 같던데... 혹시나 데이터 유실이 있을 까 싶어 많은 건수의 데이터를 loop 돌면서(동일한 메시지는 아니고, 조금씩 내용을 바꾸면서) 남겼더니... 건수가 많아질 수록 log file에서 유실된게 보이네요...
udp로 쏜 건수보다 log에 남은 내용이 적어지네요... 얼만큼 많이 쏘았느냐에 정비례해서...
이런 데이터 유실은 어쩔 수 없는 것인가요? udp를 사용한다는 걸 보면 수긍은 가는데, 이렇게 데이터 유실이 있다면 log 로서의 의미가 반감되지 않는가 싶기도 하고, 다른 방도는 없을까 싶기도 하네요.
개인적으로 직접 "파일열고->write하고->파일닫고" 하는 코드를 작성한 것 보다 데이터 유실이 더 많은 듯 싶습니다.(건수가 많아질 시...)
2) log level에 따라 남길 파일을 다음과 같이 설정했습니다.
이 때 로그가 남는 것을 보면...
LOG_DEBUG로 남긴 로그는 main.log 에 남고,
LOG_ERR로 쏜 내용은 main.log와 main_error.log 두 곳 모두에 남습니다.
이는 위처럼 level에 따라 다른 파일을 정해놨을 경우에 level 상수가 높은 로그는 level이 낮은 로그파일에도 함께 남는다는 의미로 봐야하는건지요?
제대로 정리가 됐는지 모르겠습니다.
비가 올 듯 하네요. 좋은 하루 되소서~
Re: 로그 시스템에 대해 어느정도 핸들링 할 수 있겠네요.
첫번째는 잘 모르겠네요. 일반적으로 사용할때 무리가 없었거든요. (그러고보니 동작을 자세히 확인해본 적은 없네요. 로그를 남길때 있으니 쓴다... 정도로도 문제 없는 수준만 해서 그런지...)
로그 레벨에 따라서 정확히 기록하려면
처럼 써주시면 됩니다. 기본으로는 '>='으로 작동하기 때문에 상위 레벨의 로그는 하위레벨의 로그파일에도 남습니다.
아하하하!!!!!
그렇군요... 여기서
어찌됐든 제가 해야할 수고를 program 님이 대신 해주신 것 같아...
수고하셨슴다!
log4j
http://logging.apache.org/
log4j의 각종 port들인 것같군요. 8)
한번 둘러보시는 것도 좋을 듯합니다.
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
아하하^^;;;
log4j... 기억속에 아련하던 것을 끄집어 내어주셔서 감사합니다.
첫 글에서 찾던 로그 시스템이 log4j가 생각 안나서 그런게 있었는데... 하고 올린 질문이었거든요.
감사합니다 ^^
댓글 달기