@@ -166,7 +166,7 @@ void initialize()
166
166
}
167
167
168
168
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger (ROSCONSOLE_ROOT_LOGGER_NAME);
169
- logger->addAppender (new ROSConsoleStdioAppender);
169
+ logger->addAppender (log4cxx::AppenderPtr ( new ROSConsoleStdioAppender) );
170
170
#ifdef _MSC_VER
171
171
if ( ros_root_cstr != NULL ) {
172
172
free (ros_root_cstr);
@@ -200,7 +200,7 @@ bool isEnabledFor(void* handle, ::ros::console::Level level)
200
200
201
201
void * getHandle (const std::string& name)
202
202
{
203
- return log4cxx::Logger::getLogger (name);
203
+ return &* log4cxx::Logger::getLogger (name);
204
204
}
205
205
206
206
std::string getName (void * handle)
@@ -216,7 +216,7 @@ std::string getName(void* handle)
216
216
217
217
bool get_loggers (std::map<std::string, levels::Level>& loggers)
218
218
{
219
- log4cxx::spi::LoggerRepositoryPtr repo = log4cxx::Logger::getLogger (ROSCONSOLE_ROOT_LOGGER_NAME)->getLoggerRepository ();
219
+ auto repo = log4cxx::spi::LoggerRepositoryPtr ( log4cxx::Logger::getLogger (ROSCONSOLE_ROOT_LOGGER_NAME)->getLoggerRepository () );
220
220
221
221
log4cxx::LoggerList current_loggers = repo->getCurrentLoggers ();
222
222
log4cxx::LoggerList::iterator it = current_loggers.begin ();
@@ -352,22 +352,21 @@ class Log4cxxAppender : public log4cxx::AppenderSkeleton
352
352
ros::console::LogAppender* appender_;
353
353
};
354
354
355
- Log4cxxAppender* g_log4cxx_appender = 0 ;
355
+ log4cxx::AppenderPtr g_log4cxx_appender = {} ;
356
356
357
357
void register_appender (LogAppender* appender)
358
358
{
359
- g_log4cxx_appender = new Log4cxxAppender (appender);
359
+ g_log4cxx_appender = log4cxx::AppenderPtr ( new Log4cxxAppender (appender) );
360
360
const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger (ROSCONSOLE_ROOT_LOGGER_NAME);
361
361
logger->addAppender (g_log4cxx_appender);
362
362
}
363
363
364
364
void deregister_appender (LogAppender* appender){
365
- if (g_log4cxx_appender->getAppender () == appender)
365
+ if (dynamic_cast <Log4cxxAppender*>(&* g_log4cxx_appender) ->getAppender () == appender)
366
366
{
367
367
const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger (ROSCONSOLE_ROOT_LOGGER_NAME);
368
368
logger->removeAppender (g_log4cxx_appender);
369
- delete g_log4cxx_appender;
370
- g_log4cxx_appender = 0 ;
369
+ g_log4cxx_appender = log4cxx::AppenderPtr ();
371
370
}
372
371
}
373
372
void shutdown ()
@@ -376,14 +375,14 @@ void shutdown()
376
375
{
377
376
const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger (ROSCONSOLE_ROOT_LOGGER_NAME);
378
377
logger->removeAppender (g_log4cxx_appender);
379
- g_log4cxx_appender = 0 ;
378
+ g_log4cxx_appender = log4cxx::AppenderPtr () ;
380
379
}
381
380
// reset this so that the logger doesn't get crashily destroyed
382
381
// again during global destruction.
383
382
//
384
383
// See https://code.ros.org/trac/ros/ticket/3271
385
384
//
386
- log4cxx::Logger::getRootLogger ()->getLoggerRepository ()->shutdown ();
385
+ static_cast < log4cxx::spi::LoggerRepositoryPtr>( log4cxx:: Logger::getRootLogger ()->getLoggerRepository () )->shutdown ();
387
386
}
388
387
389
388
} // namespace impl
0 commit comments