//main.cpp
#include <syslog.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string>
#include <assert.h>
int foo(void) {
int fd = 0;
fd = open("1.log",O_RDWR | O_CREAT | O_APPEND,0644); /* 1.log的文件描述符是fd */
if( -1 == fd) {
printf("open 1.log file failed \n");
return -1;
}
close(STDERR_FILENO); /* 关闭STDERR_FILENO描述符 */
dup2(fd,STDERR_FILENO); /* 复制文件描述符fd到STDERR_FILENO */
close(fd); /* 关闭文件描述符fd */
openlog("1.log",LOG_PERROR,LOG_DAEMON); /* 根据LOG_PERROR,将日志输出STDERR_FILENO定向到1.log */
return 0;
}
int main () {
int ret = 0;
ret = foo();
if (0 != ret) {
printf("error\n");
}
syslog(LOG_DEBUG,"hello world\n");
return 0;
}
/*
g++ main.cpp
./a.out
cat 1.log
1.log: hello world
*/
将终端打印定向到log文件中
最新推荐文章于 2023-01-14 13:56:04 发布