设为首页 加入收藏

TOP

简单的分级别写日志程序 (四)
2014-11-24 00:43:41 来源: 作者: 【 】 浏览:195
Tags:简单 级别 日志 程序
trPath);
break;
case LOG_TYPE_SYSTEM:
sprintf(szLogName, "%s//app_system", pStrPath);
break;
default:
return LOG_FAILED;
break;
}
strcat(szLogName, ".log");
if(IsFileExist(szLogName))
{
/* 如果文件长度大于指定的最大长度,重新创建一文件,覆盖原文件*/
if((int)GetFileLenth(szLogName) + 256 >= MAX_LOG_FILE_SIZE)
{
Create_LogFile(szLogName, 0);
}
}
else
{
Create_LogFile(szLogName, 0);
}

sprintf(pStrName, "%s", szLogName);
return LOG_SUCCESS;
}
/*********************************************************************
* 函数名称:int Create_LogDir(const char *pStrPath)
* 说明:创建日志存放路径
* 调用者:GetLogPath
* 输入参数:
* const char *pStrPath --用户指定的根路径
* 输出参数:
* 无
* 返回值:
* int -- LOG_FAILED: 失败
* -- LOG_SUCCESS: 成功
* 作者: duanyongxing
* 时间 : 2009-10-11
*********************************************************************/
int Create_LogDir(const char *pStrPath)
{
if(NULL == pStrPath)
{
return LOG_FAILED;
}
int iRet = 0;
char szSub[MAX_FILE_PATH];
char *pSub = NULL;
int iIndex = 0;
int iLen = 0;
int bFind = 0;
memset(szSub, 0, sizeof(MAX_FILE_PATH));

/* 逐层创建目录*/
while(1)
{
pSub = strchr(pStrPath + iLen, '//');
if(NULL == pSub)
{
if(iLen == 0)
{
return LOG_FAILED;
}
iRet = CreateDirectory(pStrPath, NULL);
if(0 == iRet)
{
iRet = GetLastError();
if(ERROR_ALREADY_EXISTS == iRet)
{
return LOG_SUCCESS;
}
return LOG_FAILED;
}
return LOG_SUCCESS;
}
else
{
if (!bFind)
{
bFind = 1;
}
else
{
memset(szSub, 0, sizeof(szSub));
strncpy(szSub, pStrPath, pSub - pStrPath);
CreateDirectory(szSub, NULL);
}
iLen = pSub - pStrPath + 1;
}
}
return LOG_SUCCESS;
}
/*********************************************************************
* 函数名称:int Create_LogFile(const char *pStrFile, int iPos)
* 说明:创建日志文件
* 调用者:GetLogFileName
* 输入参数:
* const char *pStrFile --文件名
* int iPos --文件指针位置
* 输出参数:
* 无
* 返回值:
* int -- LOG_FAILED: 失败
* -- LOG_SUCCESS: 成功
* 作者: duanyongxing
* 时间 : 2009-10-11
*********************************************************************/
int Create_LogFile(const char *pStrFile, int iPos)
{
HANDLE hd = 0;
int iRet = 0;
if(NULL == pStrFile)
{
return LOG_FAILED;
}
hd = CreateFile(pStrFile,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if(INVALID_HANDLE_VALUE == hd)
{
return LOG_FAILED;
}
if(DWORD_NULL == SetFilePointer(hd, iPos, NULL, FILE_BEGIN))
{
return LOG_FAILED;
}
iRet = SetEndOfFile(hd);
CloseHandle(hd);
return iRet;
}
/*********************************************************************
* 函数名称:int IsFileExist(const char *pStrFile)
* 说明:判断指定的文件是否存在
* 调用者:GetLogFileName
* 输入参数:
* const char *pStrFile --文件名
* 输出参数:
* 无
* 返回值:
* int -- LOG_BOOL_FALSE: 不存在
* -- LOG_BOOL_TRUE: 存在
* 作者: duanyongxing
* 时间 : 2009-10-11
*********************************************************************/
int IsFileExist(const char *pStrFile)
{
int iLen = 0;
WIN32_FIND_DATA finddata;
memset(&finddata, 0, sizeof(WIN32_FIND_DATA));
HANDLE hd = FindFirstFil
首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇gcc include 下一篇用C做的电子时钟程序

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: