File indexing completed on 2024-05-05 17:40:42
0001 /* 0002 this file is part of the oxygen gtk engine 0003 SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0004 SPDX-FileCopyrightText: 2010 Ruslan Kabatsayev <b7.10110111@gmail.com> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #include "oxygenloghandler.h" 0010 0011 #include <string> 0012 0013 namespace Oxygen 0014 { 0015 0016 //_________________________________________________________ 0017 LogHandler::LogHandler( void ) 0018 { 0019 _gtkLogId = g_log_set_handler( "Gtk", G_LOG_LEVEL_WARNING, gtkLogHandler, 0L ); 0020 _glibLogId = g_log_set_handler( "GLib-GObject", G_LOG_LEVEL_CRITICAL, glibLogHandler, 0L ); 0021 } 0022 0023 //_________________________________________________________ 0024 LogHandler::~LogHandler( void ) 0025 { 0026 0027 if( _gtkLogId > 0 ) 0028 { 0029 0030 g_log_remove_handler( "Gtk", _gtkLogId ); 0031 g_log_set_handler( "Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, 0L ); 0032 0033 } 0034 0035 if( _glibLogId > 0 ) 0036 { 0037 0038 g_log_remove_handler( "GLib-GObject", _glibLogId ); 0039 g_log_set_handler( "GLib-GObject", G_LOG_LEVEL_CRITICAL, g_log_default_handler, 0L ); 0040 0041 } 0042 0043 } 0044 0045 //_________________________________________________________ 0046 void LogHandler::gtkLogHandler( const gchar* domain, GLogLevelFlags flags, const gchar* message, gpointer data ) 0047 { 0048 0049 if( std::string( message ).find( "attempt to underallocate" ) != std::string::npos ) return; 0050 g_log_default_handler( domain, flags, message, data ); 0051 0052 } 0053 0054 //_________________________________________________________ 0055 void LogHandler::glibLogHandler( const gchar* domain, GLogLevelFlags flags, const gchar* message, gpointer data ) 0056 { 0057 0058 if( std::string( message ).find( "g_object_ref" ) != std::string::npos ) return; 0059 g_log_default_handler( domain, flags, message, data ); 0060 0061 } 0062 0063 }