SourceForge.jp

dkutilLog.h

説明を見る。
00001 
00002 
00003 #ifndef _dkutilLog__h__
00004 #define _dkutilLog__h__
00005 
00006 #include "dkutilCompileOption.h"
00007 
00008 #ifdef USE_DKINGYO_INCLUDE_SETTING_LIKE_BOOST
00009 #   if !defined(__GNUG__)
00010 #       include <dkutil/dktl/array_onebyone.h>
00011 #   endif
00012 #   include <dkutil/dkutilGetParam.h>
00013 #else
00014 #   if DKUTIL_COMPILE_OPTION_MSVC
00015 #       include "dktl/array_onebyone.h"
00016 #       include "dkutilGetParam.h"
00017 #   else
00018 #       include "array_onebyone.h"
00019 #       include "dkutilGetParam.h"
00020 #   endif
00021 #endif
00022 
00023 
00024 namespace dkutil{
00025 
00026 
00027 //extern bool dInitLog( const char *filename );
00028 
00029 //extern bool dAddLog( const char *filename,const char *str , ... );
00030 
00031 
00033 inline bool dInitLog( const char *filename )
00034 {
00035     FILE *fp;
00036     // エラーログファイルを開く(初期化)
00037     if(NULL==(fp = fopen( filename , "wt" ))){
00038         return false;
00039     }
00040     fclose( fp ) ;
00041     
00042     return true;
00043 }
00045 inline bool dAddLog( const char *filename,const char *str , ... ){
00046     FILE *fp=NULL;
00047     char s[2048]="";
00048     SET_VA_LIST_INSERT_YEN_N(s,2048,str);
00049     
00050     //ファイルをオープン
00051     if(NULL == (fp = fopen( filename , "at" )))
00052         return false;
00053     // エラーログファイルに書き出す
00054     fputs( s , fp ) ;
00055     fclose( fp ) ;
00056     return true;
00057 }
00058 
00059 
00060 
00061 class HTMLLog{
00062 protected:
00063     std::string m_name;
00064     int m_exSize;
00065 
00069     bool LogoutStart(char *titlename)
00070     {
00071 
00072         FILE *fp = fopen( GetLogFileName(), "at" );
00073         if ( fp == NULL ) return false;
00074 
00075         fprintf( fp,
00076             "<HTML>\n"
00077             "<HEAD>\n"
00078             "<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">\n"
00079             "<TITLE>%s</TITLE>\n"
00080             "<STYLE type=\"text/css\">\n"
00081             "<!--\n"
00082             "BODY{\n"
00083             "  font-size : 12px;\n"
00084             "  font-family : \"MS ゴシック\";\n"
00085             "}\n"
00086             "-->\n"
00087             "</STYLE>\n"
00088             "</HEAD>\n"
00089             "<BODY bgcolor=\"#ffffff\" text=\"#000000\" link=\"#444444\" vlink=\"#444444\" alink=\"#444444\">\n",
00090             titlename );
00091 
00092         fclose( fp );
00093         return true;
00094     }
00095 
00100     bool LogoutEnd()
00101     {
00102 
00103         FILE *fp = fopen( GetLogFileName(), "at" );
00104         if ( fp == NULL ) return false;
00105 
00106         fprintf( fp,
00107             "</BODY>\n"
00108             "</HTML>\n" );
00109 
00110         fclose( fp );
00111         return true;
00112     }
00113 
00114 public:
00117     HTMLLog(char *logfiletitle="DebugLog",char *fullpathname = "debuglog.html")
00118     {
00119         m_name = fullpathname;
00120         m_exSize = MAX_PATH;
00121         LogoutStart(logfiletitle);
00122     }
00123     virtual ~HTMLLog()
00124     {
00125         LogoutEnd();
00126     }
00127     //各、拡張可能引数の文字列をどうするか。(まだ実装してない。
00128     void SetExtensionStringSize(int size){
00129         m_exSize = size;
00130     }
00131 
00133     void SetLogFileName(char *name){        m_name = name;  }
00134     char *GetLogFileName(){return const_cast<char *>(m_name.c_str());}
00135 
00141     void LogoutMainCategory( char *pStr )
00142     {
00143 
00144 
00145         FILE *fp = fopen( GetLogFileName(), "at" );
00146         if ( fp == NULL ) return;
00147 
00148         fprintf( fp,
00149             "<TABLE width=\"100%%\" bgcolor=\"#000000\">\n"
00150             "  <TBODY>\n"
00151             "    <TR>\n"
00152             "      <TD align=\"center\">\n"
00153             "        <B>\n"
00154             "          <FONT color=\"WHITE\">" );
00155 
00156         vfprintf( fp, pStr, (char*)(&pStr + 1) );
00157 
00158         fprintf( fp,
00159             "</FONT>\n"
00160             "        </B>\n"
00161             "      </TD>\n"
00162             "    </TR>\n"
00163             "  </TBODY>\n"
00164             "</TABLE>\n" );
00165 
00166         fclose( fp );
00167     }
00173     void LogoutKeyword( char *pStr,... )
00174     {
00175 
00176         FILE *fp = fopen( GetLogFileName(), "at" );
00177         if ( fp == NULL ) return;
00178 
00179         fprintf( fp, "<B><FONT color=\"BLUE\">" );
00180         vfprintf( fp, pStr, (char*)(&pStr + 1) );
00181         fprintf( fp, "</FONT></B>" );
00182 
00183         fclose( fp );
00184     }
00190     void LogoutError( char *pStr,... )
00191     {
00192         
00193         FILE *fp = fopen( GetLogFileName(), "at" );
00194         if ( fp == NULL ) return;
00195         //bool f;
00196         //char *str;
00197         //BEGIN_GET_MANY_ARG(f,str,m_exSize,pStr);
00198         //if(f==false) return;
00199         fprintf( fp, "<B><FONT color=\"RED\">" );
00200         //fprintf( fp, str);
00201         vfprintf( fp, pStr, (char*)(&pStr + 1) );
00202         fprintf( fp, "</FONT></B>" );
00203         //END_GET_MANY_ARG(str);
00204         fclose( fp );
00205     }
00206 
00212     void LogoutOK( char *pStr,... )
00213     {
00214 
00215         FILE *fp = fopen( GetLogFileName(), "at" );
00216         if ( fp == NULL ) return;
00217 
00218         fprintf( fp, "<B><FONT color=\"GREEN\">" );
00219         vfprintf( fp, pStr, (char*)(&pStr + 1) );
00220         fprintf( fp, "</FONT></B>" );
00221 
00222         fclose( fp );
00223     }
00224 
00229     void LogoutStrong( char *pStr,... )
00230     {
00231 
00232         FILE *fp = fopen( GetLogFileName(), "at" );
00233         if ( fp == NULL ) return;
00234 
00235         fprintf( fp, "<B>" );
00236         vfprintf( fp, pStr, (char*)(&pStr + 1) );
00237         fprintf( fp, "</B>" );
00238 
00239         fclose( fp );
00240     }
00241 
00247     void Logout( char *pStr,... )
00248     {
00249 
00250         FILE *fp = fopen( GetLogFileName(), "at" );
00251         if ( fp == NULL ) return;
00252 
00253         vfprintf( fp, pStr, (char*)(&pStr + 1) );
00254 
00255         fclose( fp );
00256     }
00260     void LogoutNextLine( void )
00261     {
00262 
00263         FILE *fp = fopen( GetLogFileName(), "at" );
00264         if ( fp == NULL ) return;
00265 
00266         fprintf( fp, "<BR>\n" );
00267 
00268         fclose( fp );
00269     }
00270 
00271 };
00272 #if !defined(__GNUG__)
00273 class HTMLLogFactory{
00274 public:
00275     typedef array_onebyone_ex<HTMLLog> CONTAINER_TYPE;
00276     typedef CONTAINER_TYPE::handle handle;
00277     typedef CONTAINER_TYPE::size_type size_type;
00278     typedef CONTAINER_TYPE::reference reference_type;
00279 protected:
00280     CONTAINER_TYPE m_c;
00281 public:
00282     HTMLLogFactory(){}
00283     virtual ~HTMLLogFactory(){}
00284     handle Construct(char *title,char *filefullpath){ 
00285         return m_c.push(HTMLLog(title,filefullpath));
00286     }
00287     void Destroy(handle h){
00288         m_c.pop(h);
00289     }
00290     HTMLLog &Reference(handle h){
00291         return m_c.at(h);
00292     }
00293     size_type size(){   return m_c.size();}
00294 };
00295 #endif
00296 
00297 //extern void HTMLLogTest();
00298 
00299 /*  
00300 inline bool GetVersionInfoForProgrammer(std::string &s){
00301     char buff[1024]="";
00302     GetVersionInfo v;
00303 
00304     const int num = 
00305     const char *dllname[num]={
00306         "KERNEL32.DLL",
00307         "AVIFIL32.DLL",
00308         "MSVFW32.DLL",
00309         "COMCTL32.DLL",
00310         "MSVCRT.dll",
00311         "OLEPRO32.dll",
00312         "OLEAUT32.dll",
00313         "MSHTML.dll",
00314     }
00315     s += 
00316 
00317 }
00318 */
00319 
00320 }//end of dkutil namespace
00321 
00322 #endif //end of include once
00323 
00324     

dkutil 1.02リリース前 d金魚専用マニュアルバージョンに対してSun Dec 28 21:23:08 2003に生成されました。 doxygen 1.3.5