|
답변 감사합니다.
이 서버가 모니터링용 서버라서 어떤 상황이 되면 유입되는 데이터가 burst한 경우가 많습니다. 그래서,
로그를 쓸 때마다 파일을 열고 쓰고 닫고를 반복해서 하면 그만큼 오버헤드인데.. 서버에 천천히 들어오면
상관없지만 한꺼번에 밀려오면 .. 전체적인 동작도 delay될 것 같은데..
그래서 callback 함수를 쓰라고 하신 건가? 음....시도해 보아야겠네요.....
답변 감사합니다.
:수야!╋ 님이 쓰신 글 :
: 안녕하세요. 수야랍니다.
:
: 파일 관련 함수로느 f시리즈가 참 편리하긴 하죠
:
: 하지만 공유엑세스라던가 하는 부분에서의 지원 옵션이 미약하기때문에 원하시는 상황에서는 사용하기가 좀 곤란하실겁니다.
:
: WINAPI책을 보시면 XXXXFile등의 File로 끝나는 함수들이 있습니다.
:
: CreaetFile 하여 파일을 생성하거나 오픈할 수 있는데요 그 안에 원하시는 옵션들은 충분히 있습니다.
:
: 또한 서버가 98이하에서 운영되는 것이 아니라면 Log는 CallBack함수로 정의하여
:
: 파일을 쓸때만 Open했다가 다 쓰고난후 Close하는 방법이 좋습니다.
: ( 콜백함수로 정의한다고 했는데 사용하는 방법의 차이는 있습니다. 좋으실데로 구현하셔도 상관없습니다.)
:
: 몇달 몇일을 Open한 상태로 사용하여 상관이 없긴 하지만... Open된 상태에서 전원이 나간다면
:
: 그 파일의 생존은 보장할 수 없습니다. ( 생존이라는건 write했던 내용을 이야기하는 것입니다. )
:
: 98이하의 경우라면 Open해놓고 사용해야 하는데 서버라면 98은 아니겠죠?
:
: 차이점이라고하면 I/O의 속도때문이라 할수 있겠습니다.
:
: 98이하는 (98포함이죠) I/O의 속도가 느리기 때문에 Open 하고 Close하는 시간이 오래걸리기 때문에
:
: Open하고 사용해야 합니다.
:
: 쓰잘떼기 없는 98서버의 이야기는 이쯤에서 그만두겠습니다.
:
: 땅주인 님이 쓰신 글 :
: : 서버용 프로그램을 운용중인데.. 로그 기능이 제공이 되지 않아서..
: : 나중에 어떤 일이 벌어졌는 지 분석하기가 에매해서 로그 기능을 구현하려고 합니다.
: :
: : 지금 해 놓은 것은 파일 열어서 서버가 죽을 때까지 로그를 계속 기록하는 것인데요..
: : 코드로 본다면...
: :
: : [시작할 때]
: : fp = fopen("log.txt","at"); ..
: :
: : ....
: : [이벤트 발생]
: : ....
: : fwrite("log 내용", 1, sizeof(), fp);
: :
: : [ 서버 종료 될 때 ]
: : fclose(fp);
: :
: : 이런 식인데... 걱정되는 것은 파일 포인터를 open 상태로 며칠이고 몇 달이고 저렇게 나두어도
: : 괜찮은 것인지 궁금해서요.. 괜찮을 것 같은데... 걱정돼서..
: :
: : 그리고,
: : 서버가 실행 중에 로그 파일을 열면 아직 파일이 닫혀지지 않아서 에디터에서 로그의 전체 내용을
: : 확인할 수 없는데... 이부분을 어떻게 해야 하는 지 아시는 분 있으면 답변을 좀.....
|