1. 程式人生 > >自定義syslog儲存檔案

自定義syslog儲存檔案

#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
 
#include <fcntl.h>
#include <unistd.h>
#include <string>
#include <syslog.h>
#include <assert.h>

int main(int argc, char* argv[])
{
/*
openlog("testsyslog", LOG_CONS | LOG_PID, 0); 
syslog(LOG_USER | LOG_INFO, "2.syslog test message generated in program %s \n", argv[0]);   
closelog(); 
*/

/*
FILE * f;
f = fopen("not_here", "r");
if(!f){
	syslog(LOG_ERR | LOG_USER, "oops - %m\n");	
}  */

//在當前執行目錄下先建立syslog.self檔案
int logfd = open( "./syslog.self", O_RDWR | O_CREAT | O_APPEND, 0644 );
if( -1 == logfd )
	{
		printf("open file failed\n");
		return -1;	
	}

close( STDERR_FILENO );
dup2( logfd, STDERR_FILENO );
close( logfd );
openlog( "self-syslog", LOG_PERROR, LOG_DAEMON );
syslog( LOG_DEBUG, "%i\n", time( NULL ) );

return 0;
 }