void Hearthstone::DisableLogging() { QFile file( LogConfigPath().c_str() ); if( file.exists() ) { file.remove(); LOG( "Ingame log deactivated." ); } }
void Hearthstone::EnableLogging() { QString path = LogConfigPath(); QFile file( path ); bool logModified = false; // Read file contents QString contents; if( file.exists() ) { file.open( QIODevice::ReadOnly | QIODevice::Text ); QTextStream in( &file ); contents = in.readAll(); file.close(); } // Check what modules we have to activate QStringList modulesToActivate; for( int i = 0; i < NUM_LOG_MODULES; i++ ) { const char *moduleName = LOG_MODULE_NAMES[ i ]; QString moduleLine = QString( "[%1]" ).arg( moduleName ) ; if( !contents.contains( moduleLine ) ) { contents += "\n"; contents += moduleLine + "\n"; contents += "LogLevel=1\n"; contents += "FilePrinting=true\n"; DBG( "Activate module %s", moduleName ); logModified = true; } } if( contents.contains( "ConsolePrinting=true" ) ) { contents.replace( "ConsolePrinting=true", "FilePrinting=true" ); DBG( "ConsolePrinting replaced by FilePrinting" ); logModified = true; } // Finally write updated log.config if( logModified ) { DBG( "Log modified. Write new version" ); if( !file.open( QIODevice::WriteOnly | QIODevice::Text ) ) { ERR( "Couldn't create file %s", qt2cstr( path ) ); } else { QTextStream out( &file ); out << contents; } } // Notify about restart if game is running SetRestartRequired( Running() && logModified ); }
void Hearthstone::EnableLogging() { const int NUM_LOG_MODULES = 4; const char LOG_MODULES[ NUM_LOG_MODULES ][ 32 ] = { "Zone", "Asset", "Bob", "Power" }; string path = LogConfigPath(); QFile file( path.c_str() ); SetRestartRequired( false ); // Read file contents QString contents; if( file.exists() ) { file.open( QIODevice::ReadOnly | QIODevice::Text ); QTextStream in( &file ); contents = in.readAll(); file.close(); } if( !file.open( QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text ) ) { LOG( "Couldn't create file %s", path.c_str() ); } else { QTextStream out( &file ); for( int i = 0; i < NUM_LOG_MODULES; i++ ) { const char *logModuleName = LOG_MODULES[ i ]; if( !contents.contains( QString( "[%1]" ).arg( logModuleName ) ) ) { out << "\n"; out << "[" << LOG_MODULES[i] << "]\n"; out << "LogLevel=1\n"; out << "ConsolePrinting=true\n"; LOG( "Enable Log Module %s", logModuleName ); if( Running() ) { SetRestartRequired( true ); } } } file.close(); } }