MFC: 获取可执行文件目录 + 写日志函数

获取可执行文件目录

inline CString GetExeDir()
{
    TCHAR szPath[ MAX_PATH ] = { 0 };
    GetModuleFileName( NULL, szPath, MAX_PATH );

    CString csFullPath( szPath );
    int nPos = csFullPath.ReverseFind( _T( ‘\\‘ ) );
    if( nPos < 0 )
        return CString( "" );
    else
        return csFullPath.Left( nPos );
}

写日志函数

#include <locale> 

inline void WriteLog( const CString& strLog )
{
    setlocale( LC_CTYPE, ( "chs" ) );//写入中文

    CTime tm = CTime::GetCurrentTime();
    CString strLogDir = GetExeDir() + "/Log/" + tm.Format( "%Y-%m" );
    if( !PathIsDirectory( strLogDir ) )
        CreateDirectory( strLogDir, 0 );

    CString strFilePath = strLogDir + tm.Format( "/Sensitive-%Y-%m-%d.txt" );
    CString strLogText = tm.Format( "[%Y-%m-%d %H:%M:%S]: " ) + strLog;

    CStdioFile  file;
    BOOL bOpen = file.Open( strFilePath, CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate );
    if( !bOpen )
        return;
    file.SeekToEnd();
    file.WriteString( strLogText );
    file.WriteString( _T( "\r\n" ) );//换行
    file.Flush();
    file.Close();
}

原文地址:https://blog.51cto.com/weiyuqingcheng/2364863

时间: 2024-11-07 12:04:17

MFC: 获取可执行文件目录 + 写日志函数的相关文章

写日志函数和持续优化

首先看下面的函数 <span style="font-size:18px;">void writelog(char* file, char* msg) { FILE*fp=NULL; int nDataLen = strlen(msg); fp=fopen(file,"ab+");//只供读取 if(fp!=NULL) { fwrite(msg, nDataLen, 1, fp); } fclose(fp);//关闭文件 }</span> 这

PHP写日志函数

初学,写一个函数用于存储日志调试. 1 function WriteLog($msg) 2 { 3 $filename = dirname(__FILE__) ."\\Debug.log"; 4 $handler = null; 5 6 if (($handler = fopen($filename, 'ab+')) !== false) 7 { 8 fwrite($handler, '['.date('Y-m-d H:i:s').']'."\t".$msg.&qu

MFC获取可执行文件(exe)所在文件目录

可以应用函数GetModuleFileName(),举一个例子: CString strexe; ::GetModuleFileName(NULL,strexe.GetBufferSetLength(MAX_PATH+1),MAX_PATH); int nexe = strexe.GetLength(); for(i=nexe-1;i>=0;i--) { if(strexe[i]=='\\') break; } strtmp = strexe.Left(i+1); strtmp存储的就是exe文

php 写日志函数

function write_log($msg,$isEcho=false,$path=''){ $path?'':$path='logs'.DIRECTORY_SEPARATOR.'log'.date('Ymd',time()).'.txt'; if(!is_dir(dirname($path))){ mkdir(dirname($path),0755,true)or die('创建目录失败.'); } $msg=date('Y-m-d H:i:s',time())."------------

如何用python写监控日志函数

def write_log(username,operation): ''' 写日志函数 :param username:用户名 :param operation:用户的操作信息 :return: ''' w_time = time.strftime('%Y-%m-%d %H%M%S') with open('log.txt','a+') as fw: log_content = '%s %s %s \n'%(w_time,username,operation) fw.write(log_con

高吞吐量的一个日志函数类_用于IOCP (Delphi)

在开发服务器端程序的时候,日志是必须的一个功能.由于服务器端的要频繁的把数据写入日志,开始的时候用了一个很简单日志函数 就是直接把日志字符写入文件中.然后关闭连接.一直也应用良好.但做压力测试的时候,因为要每个连接的数据都要写入日志,发现运行的一段时间后,频繁掉线,CPU占用率,居高不下,优化了可以想到的很多地方,有一定的效果,仔细观察发现,硬盘灯狂闪不止,说明硬盘I/0操作过于紧张.但测试的时候,基本是不读写硬盘的,恍然发现,是日志函数影响到整个系统的性能.每一个日志数据的时候,就要打开文件,

获取指定目录下的所有文件名,包括子目录函数

获取指定目录下所有文件名,这是一个一个目录遍历的方法: function TPathWatch.FList(ASourFile: string): TStrings; // 查找子目录 AStrings存放查找出路径, ASourceFile要查找的目录 var sour_path, sour_file: string; // 源路径,源文件名类型 TmpList: TStringList; FileRec, subFileRec: TSearchrec; i: Integer; begin R

VC++获取可执行文件当前目录

char lpszCurrentPath[MAX_PATH] ; //MAX_PATH是Win32定义的一个宏,表示Windows允许的最大路径255; GetCurrentDirectory(MAX_PATH , lpszCurrentPath ); GetCurrentDirectory可以获取程序当前运行的目录,而不是当前可执行文件的目录.我在网上阅读别人的博客是,时常看到有人写这个函数可以获取当前着执行文件的目录,想想实在误导别人啊.当然这个函数的名字也很具有迷惑性. 获取当前可执行文件

NodeJS写日志_Log4js使用详解

今天和大家分享一下NodeJS中写日志的一个常用第三方包:Log4js. 跟随主流Blog特色,先简单介绍下Log4js的基本信息.介绍Log4js之前,需要先说一下Log4***,Log4***是由Apache提供的多平台下多语言下日志书写扩展包,目的很简单就是使日志书写更加方便简洁,同时对不同的业务日志能够进行灵活的分文件记录,同时也包含着详细的等级配置,为之后分级输出,检索,及程序自动解析提供更加便捷的支持(一家之言,非官方描述,领会精神).Log4***有很多语言的实现,比如Log4cp