Korea FreeBSD Users Group News, Internal, Projects, Home
Software, Support, Documentation

Re: [KFUG] syslog



[ ³¯Â¥¼ø »öÀÎ ] [ ´ñ±Û¼ø »öÀÎ ] [ ÃÖ»óÀ§ »öÀÎ] [ °Ë»ö]

[ÀÌÀü ±Û] [´ÙÀ½ ±Û] [ÀÌÀü ´ñ±Û] [´ÙÀ½ ´ñ±Û]


On Fri, Dec 19, 2003 at 04:51:47PM +0900, 최재국 wrote:
 > syslog(3)을 이용해서 로그를 남기고 있습니다..
 > 
 >  openlog("TEST", LOG_NDELAY, LOG_LOCAL1);
 > 
 >  for(i = 0; i < TEST_NUM; i++)
 >          syslog(LOG_ALERT, "%s\n", log);  // log 는 char[1024]
 > 
 >  closelog();
 > 
 > 이런 식으로 로그를 남기는 프로그램을 사용하는데요..
 > 
 > 저 TEST_NUM 의 숫자가 커져서 한번 open 해서 쓰는 로그가 엄청나게 많을 경우
 > 
 > syslogd 데몬이 계속 밀리는 것 같습니다. 
 > 
syslog(3)는 realtime으로 동작하지는 않습니다.
syslogd(8)가 /dev/log에서 메세지를 읽는 시점의 시간이 기록되기 때문에 정확한
값은 아닐수 있고, 보통 정확도가 1초 미만입니다.
또한 syslog(8)가 많은 로그를 동시에 open하여 select(2)로 처리하기 때문에
더 더욱 정확한 값은 기대하기 어렵습니다.

 > 같은 시간에 생성된 log 메시지가 커널 메시지에는 다른 시간대로 써지는 것 같습니다.
 > 
 > 그럼 그 밀리는 로그는 어디에 임시로 저장되게 되는지 알고 싶습니다..
 > 
많은 로그정보가 필요하다면 syslogd(8)를 사용하지 말고 프로그램에서 직접
로깅을 하도록 하고 binary format으로 하는게 좋을것 같습니다. 이런식으로
처리를 하면 디스크의 I/O에만 영향을 받기때문에 원하는일을 할 수 있을겁니다.
물론 binary format으로 저장되었기 때문에 이를 읽어볼려면 이를 해독할 수
있는 다른 프로그램도 같이 만들어야 합니다.
예를들면 tcpdump(1)는 많은 로그를 필요로하기 때문에 직접로깅을 하고(-w option)
나중에 이를 다시 볼수있습니다.(-r option)

 > 도움 부탁드립니다..
 > 

-- 
Pyun YongHyeon <http://www.kr.freebsd.org/~yongari>
_______________________________________________
한국 FreeBSD 사용자 그룹(KFUG) questions 메일링 리스트
questions at kr.FreeBSD.org
http://www.kr.FreeBSD.org/mailman/listinfo/questions


[ ³¯Â¥¼ø »öÀÎ ] [ ´ñ±Û¼ø »öÀÎ ] [ ÃÖ»óÀ§ »öÀÎ] [ °Ë»ö]

Copyright © 1998-2005 Korea FreeBSD Users Group.
All rights reserved. webmaster at kr.FreeBSD.org
$Date: 2003/12/20 02:21:20 $
Powered by FreeBSD