急急急,C语言,怎么输出日志文件

andy_gon 2008-10-03 06:56:41
C语言里怎么输出日志文件
例如现在运行某一程序,然后在日志文件里面输出日期,时间,运行的程序的名字,而且该日志文件也是运行程序后才出现的
...全文
1804 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_sharp 2008-10-05
  • 打赏
  • 举报
回复
fopen fprintf fclose

文件读写
aaajj 2008-10-05
  • 打赏
  • 举报
回复
写文件
andy_gon 2008-10-04
  • 打赏
  • 举报
回复
其实我就想编写一个跟踪日志文件 ,怎么做了?
singlewheel 2008-10-04
  • 打赏
  • 举报
回复
__TIME__,__DATE__输出的是编译时的时间和日期.无法显示程序执行时的时间.

#include<stdio.h>
#include<stdlib.h>
int main(char a,char *arg[])
{
char buff[100];
FILE *file;
file=fopen("logo.txt","w");
fprintf(file,"%s\n",arg[0]);
fclose(file);
sprintf(buff,"date/T>>logo.txt");
system(buff);
sprintf(buff,"time/T>>logo.txt");
system(buff);
getch();
}
sailing0123 2008-10-04
  • 打赏
  • 举报
回复
/**********************************************************
* Function: 获取当前系统的时间,精确到秒
* Input: ioSec 保存当前时间的数字格式
* Output:
* Return: 当前时间的字符串
**********************************************************/
const char* getcurdate( long * ioSec )
{
static time_t m_time;
struct tm *pNow = NULL;
static char tmpDate[TIME_LEN] = "";

m_time = time( NULL );
if ( NULL != ioSec )
{
*ioSec = m_time;
}
pNow = localtime( &m_time );
memset( tmpDate, 0x00, TIME_LEN );
sprintf( tmpDate, "[ %4d-%02d-%02d %02d:%02d:%02d ]",
pNow->tm_year + 1900, pNow->tm_mon + 1, pNow->tm_mday,
pNow->tm_hour, pNow->tm_min, pNow->tm_sec);
return tmpDate;
}
sailing0123 2008-10-04
  • 打赏
  • 举报
回复

/**********************************************************
* Function: 写日志
* Input: inLogInfo 日志对象
* fmt 日志内容的格式串
* Output:
* Return:
**********************************************************/
void log( CLog * inLogInfo, const char * fmt, ... )
{
static const int LOG_LEN = 256;
char buffer[LOG_LEN] = "";
char curtime[TIME_LEN] = "";

va_list ap;
va_start( ap, fmt );
vsnprintf( buffer, LOG_LEN-1, fmt, ap );
va_end(ap);
strcpy( curtime, getcurdate() );
printf(" %s : %s\n", curtime, buffer );

if ( NULL == inLogInfo )
{
return;
}
if ( NULL == inLogInfo->m_pFile && !inLogInfo->m_strLogName.empty() )
{
inLogInfo->m_pFile = fopen( inLogInfo->m_strLogName.c_str(), "a+");
}

if ( NULL != inLogInfo->m_pFile )
{
fprintf( inLogInfo->m_pFile, " %s : %s\n", curtime, buffer );
}
}
长尾巴的悟空 2008-10-04
  • 打赏
  • 举报
回复
何以见得"干"过
Dingjiu 2008-10-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 k2eats 的回复:]
这个程序里面添加:

C/C++ codefprintf(fp,"日期:%s\t时间:%s\t运行程序的名字:%s\n",__DATE__,__TIME__,argv[0]);
[/Quote]
受教了!
aozhi 2008-10-04
  • 打赏
  • 举报
回复
aozhi 2008-10-04
  • 打赏
  • 举报
回复
fprintf(fp,"%s %s\t%s\t%s line\n",__DATE__,__TIME__,__FILE__,__LINE__);


我也一把。
野男孩 2008-10-04
  • 打赏
  • 举报
回复
增加个全局日志函数呗,给个const char*的参数传入要的内容,或者用变参形式,支持格式化输入数据。
函数里面用fopen,fwrite,fprintf,fclose之类的函数处理文件,写入之前,再格式化一遍数据,把时间,日期,程序名加上。
ChamPagneZ 2008-10-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lin_style 的回复:]
3楼的名字让我想起了某起凶杀案
[/Quote]
南京的是吧
放心,不是我的,呵呵
lin_style 2008-10-03
  • 打赏
  • 举报
回复
3楼的名字让我想起了某起凶杀案
ChamPagneZ 2008-10-03
  • 打赏
  • 举报
回复
干过
怎么不高亮
ChamPagneZ 2008-10-03
  • 打赏
  • 举报
回复

//楼上的一看就知道是干过项目的!
K行天下 2008-10-03
  • 打赏
  • 举报
回复
这个程序里面添加:
fprintf(fp,"日期:%s\t时间:%s\t运行程序的名字:%s\n",__DATE__,__TIME__,argv[0]);
xkyx_cn 2008-10-03
  • 打赏
  • 举报
回复
写文件 fopen fwrite fclose
时间用time函数取得

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧