2010-07-01 25 views
0

C 프로그램에서 로그 파일을 작성하고 싶습니다. 매일 tempstamp와 함께 새로운 로그 파일을 추가하기를 원합니다.C에서 로그 파일을 작성하는 방법

아이디어가 있습니까, 아니면 도서관이 있습니까?

+1

"로그 파일"이란 무엇입니까? 그냥 파일 일 뿐이지? newlogfile을 추가하고 싶습니까? fopen에서 append 플래그를 사용하십시오 ...! 또는 두 타임 스탬프에 모두 추가해야한다는 의미입니까? (타임 스탬프 == tempstamp?) ... – ShinTakezou

답변

1

C에 대한 로깅 라이브러리가 있습니다 (예 : log4c).

+0

질문을 명확히하지만 헤더 파일을 설치하고 그래프를 설치하지 않으려면 :-( – farka

+0

외부 라이브러리를 사용하려면 설치해야합니다! 헤더 파일 만 작동하지 않습니다. 당신도 라이브러리가 필요합니다. 그리고 그래프가 아니라 그래프를 의미한다면, doxygen으로 문서를 만들고 싶지 않다면, 설치할 필요가 없습니다 – jigfox

+0

fopen fclose fwrite 시스템을 사용하면 시간이 걸릴 것 같지 않습니다! – farka

-1

프로그램 출력을 로그 파일에 기록 하시겠습니까? 이것은 큰 응용 프로그램을 작성하고 소프트웨어의 정확한 작동을 알기 위해 로그를 분석해야 할 때 수행됩니다. 이 경우 출력을 로그 파일로 리디렉션하고 나중에 읽고 분석 할 수 있습니다. 표준 로깅 라이브러리를 사용하지 않으려는 경우 데몬을 작성하여 출력을 캡처하고 로그 파일을 만들어야 할 수 있습니다.

파일 로그 유틸리티를 만들려고한다고 가정합니다.

0

시도해보십시오. log4cpp 다음은 C로 작성된 간단한 로그 파일 작성입니다.

/*Write your won logfile in c.*/ 
#include <stdio.h> 
#define LOG(X, Y) fprintf (fp, #X ": Time:%s, File:%s(%d) " #Y "\n", __TIMESTAMP__, __FILE__, __LINE__) 

int main(int args, char **argv) 
{ 
    FILE *fp= fopen("logfile.txt", "w"); //("c:\\temp\\logfile.txt") 

    LOG(INFO, "File open success."); 
    LOG(WARN, "File path missing."); 
    LOG(ERROR, "File close faild."); 

    fclose(fp); 
return 0; 
} 
+1

'fprintf()'를 사용하면 멀티 스레드 프로세스에 대해 안전하지 못하게됩니다. –

+0

@AndrewHenle 감사합니다! +1 완벽하게 느껴졌습니다! 안전하다는 것을 배우게됩니다. 뭐라구? – Kulamani

관련 문제