AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Writing logs (https://forums.alliedmods.net/showthread.php?t=246235)

smiley92 08-14-2014 04:47

Writing logs
 
Hi allied,

I have a plugin that contains errors to writing logs.Problem him is with log counts.

Is something wrong in that code?

Code:

public LoadEliminates( )
{
   
    if( g_iEliminates )
    {
       
        ArrayClear( g_aData );
        g_iEliminates = 0;
    }
   
    new file[ 128 ];
    get_configsdir( file, sizeof ( file ) -1 );
    formatex( file, sizeof ( file ) -1,"%s/%s", file, EliminateDataFile );
   
   
    if( file_exists( file ) )
    {
        new iFile = fopen( file, "rt" );
       
        new szDateAndTime[ 32 ], szName[ 32 ], szIp[ 25 ], szSteamId[ 35 ],
            szAdminName[ 32 ], szAdminIp[ 25 ], szAdminSteamId[ 35 ],
            szReason[ 32 ];
           
        new szFileData[ 512 ], eData[ eDatas ];
       
        while( !feof( iFile ) )
       
        {
            fgets( iFile, szFileData, sizeof ( szFileData ) - 1);
           
            if( !szFileData[ 0 ] || szFileData[ 0 ] == ';'
                || ( szFileData[ 0 ] == '/' && szFileData[ 1 ] == '/' ) )
                continue;

            parse( szFileData,\
                szDateAndTime, sizeof (  szDateAndTime ) -1,\
                szName, sizeof ( szName ) -1,\
                szIp, sizeof ( szIp ) -1,\
                szSteamId, sizeof ( szSteamId ) -1,\
                szAdminName, sizeof ( szAdminName ) -1,\
                szAdminIp, sizeof ( szAdminIp ) -1,\
                szAdminSteamId, sizeof ( szAdminSteamId ) -1,\
                szReason, sizeof ( szReason ) -1 );
           
           
            copy( eData[ NAME ], sizeof ( eData[ NAME ] ) -1, szName );
            copy( eData[ IP ], sizeof ( eData[ IP ] ) -1, szIp );
            copy( eData[ AUTHID ], sizeof ( eData[ AUTHID ] ) -1, szSteamId );
            copy( eData[ REASON ], sizeof ( eData[ REASON ] ) -1, szReason  );
            copy( eData[ ANAME ], sizeof ( eData[ ANAME ] ) -1, szAdminName );
            copy( eData[ AIP ], sizeof ( eData[ AIP ] ) -1, szAdminIp );
            copy( eData[ AAUTHID ], sizeof ( eData[ AAUTHID ] ) -1, szAdminSteamId );
            copy( eData[ TIME ], sizeof ( eData[ TIME ] ) -1, szDateAndTime );
           
            ArrayPushArray( g_aData, eData );
           
            g_iEliminates++;
        }
       
        fclose( iFile );
    }
   
    Log( "[INFO] - Am incarcat cu succes %d eliminari din %s", g_iEliminates, file );
   
    return 0;
}

public RemoveEliminate( i )
{
    ArrayDeleteItem( g_aData, i );
   
    g_iEliminates--;
   
    new file[ 128 ];
    get_configsdir( file, sizeof ( file ) -1 );
    formatex( file, sizeof ( file ) -1,"%s/%s", file, EliminateDataFile );
   
    new iFile = fopen( file, "wt" );
   
    fprintf( iFile, ";Fisierul in care Advanced Eliminate stocheaza datele userilor eliminati^n" );
    fprintf( iFile, ";^n" );
    fprintf( iFile, ";^n" );
   
    new eData[ eDatas ];
    for( new i = 0; i < g_iEliminates; i++ )
    {
        ArrayGetArray( g_aData, i, eData );
        fprintf( iFile, "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"^n",
            eData[ TIME ], eData[ NAME ], eData[ IP ], eData[ AUTHID ],
            eData[ ANAME ], eData[ AIP ], eData[ AAUTHID ], eData[ REASON ] );
   
    }
   
    fclose( iFile );
   
}

public LogToConfigs( const msg[ ], any:...)
{
    new message[ 256 ];
    vformat( message, sizeof ( message ) -1, msg , 2 );
   
    new file[ 128 ], log[ 256 ];
    get_configsdir( file, sizeof ( file ) -1 );
    formatex( file, sizeof ( file ) -1,"%s/%s", file, EliminateLogFile );
   
    if( !file_exists( file ) )
    {
        write_file( file ,"In acest log veti gasi urmatoarele informatii:", -1 );
        write_file( file ,"Cine, cand si cui a dat eliminate dar si pe ce motiv.",-1 );
        write_file( file ,"Cine, cand si cui a scos eliminarea dar si pe ce motiv.",-1 );
        write_file( file ,"",-1 );
        write_file( file ,"",-1 );
    }   
   
    formatex( log, sizeof (log ) -1,"|%s| - %s ", _get_time( ), message );
    write_file( file, log, -1 );

}

or that?

Code:

public Log( const msg[ ], any:...)
{
    new message[ 256 ];
    vformat( message, sizeof ( message ) -1, msg , 2 );
   
    new dir[ 64 ], file[ 128 ], log[ 256 ];   
   
    if( !dir[ 0 ] )
    {   
        get_basedir( dir, sizeof ( dir ) -1 );
        formatex( file, sizeof ( file ) -1,"%s/logs/AdvancedEliminate.log", dir );
    }
   
    formatex( log, sizeof (log ) -1,"|%s| %s ", _get_time( ), message );
    write_file( file, log, -1 );
}

Look as him write in log AdvancedEliminate.log:

Code:

|05.08.2013 - 09:10:28| [INFO] - Am incarcat cu succes 0 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 09:30:39| [INFO] - Am incarcat cu succes 1 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 09:51:14| [INFO] - Am incarcat cu succes 3 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 10:36:00| [INFO] - Am incarcat cu succes 6 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 10:45:39| [INFO] - Am incarcat cu succes 10 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 10:46:01| [INFO] - Am incarcat cu succes 15 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:04:51| [INFO] - Am incarcat cu succes 5 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:13:04| [INFO] - Am incarcat cu succes 5 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:15:50| [INFO] - Am incarcat cu succes 11 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:19:29| [INFO] - Am incarcat cu succes 6 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:42:34| [INFO] - Am incarcat cu succes 13 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:42:47| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:49:11| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:56:07| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:59:34| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:04:30| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:16:34| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:18:58| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:25:50| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:31:31| [INFO] - Am incarcat cu succes 15 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:34:59| [INFO] - Am incarcat cu succes 8 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:39:13| [INFO] - Am incarcat cu succes 8 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:57:03| [INFO] - Am incarcat cu succes 8 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 14:17:04| [INFO] - Am incarcat cu succes 17 eliminari din addons/amxmodx/configs/EliminateData.txt


smiley92 08-15-2014 11:14

Re: Writing logs
 
A suggestion, idea or something?

fysiks 08-15-2014 11:39

Re: Writing logs
 
The requisite time to wait before bumping your thread is 14 days, FYI.

What exactly is your question? I don't understand your issue. You should explain it better and with more detail. It would also help if everything was in english (since this is an english forum).

NikKOo31 08-15-2014 12:31

Re: Writing logs
 
I didn't undestand any of the log you are showing, but I suggest you to use new file natives, and also log_to_file will make your job easier :p

smiley92 08-15-2014 15:09

Re: Writing logs
 
Quote:

Originally Posted by fysiks (Post 2184370)
The requisite time to wait before bumping your thread is 14 days, FYI.

What exactly is your question? I don't understand your issue. You should explain it better and with more detail. It would also help if everything was in english (since this is an english forum).

The logs do not count well.

Look AdvancedEliminate.log and see counts.Is 3, 6, 10, 7, 15... don`t work fine/properly in log my code from topic I think.My plugin work good, but counts is wrong writed in AdvancedEliminate.log


Sorry if I can`t say more detail...

fysiks 08-15-2014 21:19

Re: Writing logs
 
Saying it doesn't "count well" doesn't really help all that much when it's not clear as to what you are counting. The code suggests that that number is simply the number of lines read in a file but that doesn't really make much sense that it would be changing assuming you are using the same file and are not adding entries to the file.

You should explain exactly what you are wanting to log (don't mention any code, simply state your desire in english).

Also, post a link to the plugin or show the code that is writing to this file that you are reading.

smiley92 08-16-2014 06:50

Re: Writing logs
 
1 Attachment(s)
I been posted log with issue to number.

Btw, that is the log writed wrong NOW in AdvancedEliminate.log from cstrike/addons/amxmodx/logs:

Code:

|05.08.2013 - 09:10:28| [INFO] - Am incarcat cu succes 0 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 09:30:39| [INFO] - Am incarcat cu succes 1 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 09:51:14| [INFO] - Am incarcat cu succes 3 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 10:36:00| [INFO] - Am incarcat cu succes 6 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 10:45:39| [INFO] - Am incarcat cu succes 10 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 10:46:01| [INFO] - Am incarcat cu succes 15 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:04:51| [INFO] - Am incarcat cu succes 5 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:13:04| [INFO] - Am incarcat cu succes 5 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:15:50| [INFO] - Am incarcat cu succes 11 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:19:29| [INFO] - Am incarcat cu succes 6 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:42:34| [INFO] - Am incarcat cu succes 13 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:42:47| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:49:11| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:56:07| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 11:59:34| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:04:30| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:16:34| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:18:58| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:25:50| [INFO] - Am incarcat cu succes 7 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:31:31| [INFO] - Am incarcat cu succes 15 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:34:59| [INFO] - Am incarcat cu succes 8 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:39:13| [INFO] - Am incarcat cu succes 8 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 12:57:03| [INFO] - Am incarcat cu succes 8 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 14:17:04| [INFO] - Am incarcat cu succes 17 eliminari din addons/amxmodx/configs/EliminateData.txt

And my plugin must to write in logs so:

|05.08.2013 - 09:10:28| [INFO] - Am incarcat cu succes 0 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 09:30:39| [INFO] - Am incarcat cu succes 1 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 09:51:14| [INFO] - Am incarcat cu succes 2 eliminari din addons/amxmodx/configs/EliminateData.txt
|05.08.2013 - 10:36:00| [INFO] - Am incarcat cu succes 3 eliminari din addons/amxmodx/configs/EliminateData.txt
...
...........
and all that.
In english: Succefully loaded 1/2/3...etc eliminations from addons/amxmodx/configs/EliminateData.txt
The plug must write the log in ascending numbering to infinity.

Every time you change the map or restart the server so the logs must write one line loaded depending to 'Eliminates' gives.

Plugin is to atachament.

NikKOo31 08-16-2014 11:30

Re: Writing logs
 
The plugin just log the number of entries loaded from file. I don't see anything wrong.
If you want a proggresive count change the place of the "log" function like this:

PHP Code:

public LoadEliminates( )
{
    
    if( 
g_iEliminates )
    {
        
        
ArrayClearg_aData );
        
g_iEliminates 0;
    }
    
    new 
file128 ];
    
get_configsdirfilesizeof file ) -);
    
formatexfilesizeof file ) -1,"%s/%s"fileEliminateDataFile );
    
    
    if( 
file_existsfile ) )
    {
        new 
iFile fopenfile"rt" );
        
        new 
szDateAndTime32 ], szName32 ], szIp25 ], szSteamId35 ],
            
szAdminName32 ], szAdminIp25 ], szAdminSteamId35 ],
            
szReason32 ];
            
        new 
szFileData512 ], eDataeDatas ];
        
        while( !
feofiFile ) )
        
        {
            
fgetsiFileszFileDatasizeof szFileData ) - 1);
            
            if( !
szFileData] || szFileData] == ';'
                
|| ( szFileData] == '/' && szFileData] == '/' ) )
                continue;

            
parseszFileData,\
                
szDateAndTimesizeof (  szDateAndTime ) -1,\
                
szNamesizeof szName ) -1,\
                
szIpsizeof szIp ) -1,\
                
szSteamIdsizeof szSteamId ) -1,\
                
szAdminNamesizeof szAdminName ) -1,\
                
szAdminIpsizeof szAdminIp ) -1,\
                
szAdminSteamIdsizeof szAdminSteamId ) -1,\
                
szReasonsizeof szReason ) -);
            
            
            
copyeDataNAME ], sizeof eDataNAME ] ) -1szName );
            
copyeDataIP ], sizeof eDataIP ] ) -1szIp );
            
copyeDataAUTHID ], sizeof eDataAUTHID ] ) -1szSteamId );
            
copyeDataREASON ], sizeof eDataREASON ] ) -1szReason  );
            
copyeDataANAME ], sizeof eDataANAME ] ) -1szAdminName );
            
copyeDataAIP ], sizeof eDataAIP ] ) -1szAdminIp );
            
copyeDataAAUTHID ], sizeof eDataAAUTHID ] ) -1szAdminSteamId );
            
copyeDataTIME ], sizeof eDataTIME ] ) -1szDateAndTime );
            
            
ArrayPushArrayg_aDataeData );

            
Log"[INFO] - Am incarcat cu succes %d eliminari din %s"g_iEliminatesfile );
            
g_iEliminates++;
        }
        
        
fcloseiFile );
    }
    
    return 
0;


But you'll get as many logs as entries in the file for every time the function it's executed :/

smiley92 08-16-2014 12:44

Re: Writing logs
 
Quote:

Originally Posted by NikKOo31 (Post 2184739)
The plugin just log the number of entries loaded from file. I don't see anything wrong.
If you want a proggresive count change the place of the "log" function like this:

PHP Code:

public LoadEliminates( )
{
    
    if( 
g_iEliminates )
    {
        
        
ArrayClearg_aData );
        
g_iEliminates 0;
    }
    
    new 
file128 ];
    
get_configsdirfilesizeof file ) -);
    
formatexfilesizeof file ) -1,"%s/%s"fileEliminateDataFile );
    
    
    if( 
file_existsfile ) )
    {
        new 
iFile fopenfile"rt" );
        
        new 
szDateAndTime32 ], szName32 ], szIp25 ], szSteamId35 ],
            
szAdminName32 ], szAdminIp25 ], szAdminSteamId35 ],
            
szReason32 ];
            
        new 
szFileData512 ], eDataeDatas ];
        
        while( !
feofiFile ) )
        
        {
            
fgetsiFileszFileDatasizeof szFileData ) - 1);
            
            if( !
szFileData] || szFileData] == ';'
                
|| ( szFileData] == '/' && szFileData] == '/' ) )
                continue;

            
parseszFileData,\
                
szDateAndTimesizeof (  szDateAndTime ) -1,\
                
szNamesizeof szName ) -1,\
                
szIpsizeof szIp ) -1,\
                
szSteamIdsizeof szSteamId ) -1,\
                
szAdminNamesizeof szAdminName ) -1,\
                
szAdminIpsizeof szAdminIp ) -1,\
                
szAdminSteamIdsizeof szAdminSteamId ) -1,\
                
szReasonsizeof szReason ) -);
            
            
            
copyeDataNAME ], sizeof eDataNAME ] ) -1szName );
            
copyeDataIP ], sizeof eDataIP ] ) -1szIp );
            
copyeDataAUTHID ], sizeof eDataAUTHID ] ) -1szSteamId );
            
copyeDataREASON ], sizeof eDataREASON ] ) -1szReason  );
            
copyeDataANAME ], sizeof eDataANAME ] ) -1szAdminName );
            
copyeDataAIP ], sizeof eDataAIP ] ) -1szAdminIp );
            
copyeDataAAUTHID ], sizeof eDataAAUTHID ] ) -1szAdminSteamId );
            
copyeDataTIME ], sizeof eDataTIME ] ) -1szDateAndTime );
            
            
ArrayPushArrayg_aDataeData );

            
Log"[INFO] - Am incarcat cu succes %d eliminari din %s"g_iEliminatesfile );
            
g_iEliminates++;
        }
        
        
fcloseiFile );
    }
    
    return 
0;


But you'll get as many logs as entries in the file for every time the function it's executed :/

Thanks for your sugestion, but I waiting maybe somebody can resolve this issue.

fysiks 08-16-2014 20:10

Re: Writing logs
 
I honestly don't see any issues here (especially without the contents of EliminateData.txt after each map).

Here is my suggestion to convince your self that there is not a problem OR to convince you that what you thinking you are logging is not actually what you are logging:
  1. Make a copy of EliminateData.txt.
  2. Play a map, do what ever you do normally.
  3. Make another copy of EliminateData.txt.
  4. Play a map, do what ever you do normally.
  5. Make another copy of EliminateData.txt.

Attache all three files versions of EliminateData.txt to your next post along with AdvancedEliminate.log.


All times are GMT -4. The time now is 12:57.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.