mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-26 10:32:56 +01:00
- Android log channel implementation
- Removes warning from Bugcheck.h on Android fixes #122
This commit is contained in:
@@ -16,6 +16,9 @@ POCO_HEADERS_AUTO( SRCS include/Poco/OpcomChannel.h )
|
|||||||
POCO_SOURCES_AUTO_PLAT( SRCS UNIX src/SyslogChannel.cpp )
|
POCO_SOURCES_AUTO_PLAT( SRCS UNIX src/SyslogChannel.cpp )
|
||||||
POCO_HEADERS_AUTO( SRCS include/Poco/SyslogChannel.h )
|
POCO_HEADERS_AUTO( SRCS include/Poco/SyslogChannel.h )
|
||||||
|
|
||||||
|
POCO_SOURCES_AUTO_PLAT( SRCS ANDROID src/AndroidLogChannel.cpp )
|
||||||
|
POCO_HEADERS_AUTO( SRCS include/Poco/AndroidLogChannel.h )
|
||||||
|
|
||||||
# For Windows CE we need to disable these
|
# For Windows CE we need to disable these
|
||||||
if(WINCE)
|
if(WINCE)
|
||||||
POCO_SOURCES_AUTO_PLAT( SRCS OFF
|
POCO_SOURCES_AUTO_PLAT( SRCS OFF
|
||||||
|
|||||||
@@ -56,6 +56,10 @@ else
|
|||||||
objects += SyslogChannel
|
objects += SyslogChannel
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(findstring Android, $(POCO_CONFIG)), Android)
|
||||||
|
objects += AndroidLogChannel
|
||||||
|
endif
|
||||||
|
|
||||||
target = PocoFoundation
|
target = PocoFoundation
|
||||||
target_version = $(LIBVERSION)
|
target_version = $(LIBVERSION)
|
||||||
target_libs =
|
target_libs =
|
||||||
|
|||||||
54
Foundation/include/Poco/AndroidLogChannel.h
Normal file
54
Foundation/include/Poco/AndroidLogChannel.h
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
//
|
||||||
|
// AndroidLogChannel.h
|
||||||
|
//
|
||||||
|
// $Id: //poco/1.4/Foundation/include/Poco/AndroidLogChannel.h#2 $
|
||||||
|
//
|
||||||
|
// Library: Foundation
|
||||||
|
// Package: Logging
|
||||||
|
// Module: AndroidLogChannel
|
||||||
|
//
|
||||||
|
// Definition of the AndroidLogChannel class.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
|
||||||
|
// and Contributors.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: BSL-1.0
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef Foundation_AndroidLogChannel_INCLUDED
|
||||||
|
#define Foundation_AndroidLogChannel_INCLUDED
|
||||||
|
|
||||||
|
|
||||||
|
#include "Poco/Foundation.h"
|
||||||
|
#include "Poco/Channel.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace Poco {
|
||||||
|
|
||||||
|
|
||||||
|
class AndroidLogChannel: public Poco::Channel
|
||||||
|
/// A channel that writes to the Android log subsystem.
|
||||||
|
///
|
||||||
|
/// Only the message's text is written, followed
|
||||||
|
/// by a newline, using the tag passed on the constructor.
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
AndroidLogChannel(const std::string &tag);
|
||||||
|
/// Creates the AndroidLogChannel.
|
||||||
|
|
||||||
|
void log(const Message& msg);
|
||||||
|
/// Logs the given message to the channel's stream.
|
||||||
|
|
||||||
|
protected:
|
||||||
|
~AndroidLogChannel();
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string _tag;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace Poco
|
||||||
|
|
||||||
|
|
||||||
|
#endif // Foundation_AndroidLogChannel_INCLUDED
|
||||||
@@ -148,7 +148,7 @@ protected:
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
#if defined(POCO_COMPILER_GCC) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 406)
|
#if defined(POCO_COMPILER_GCC) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) && !defined(POCO_ANDROID)
|
||||||
GCC_DIAG_OFF(unused-local-typedefs) // supress numerous gcc warnings
|
GCC_DIAG_OFF(unused-local-typedefs) // supress numerous gcc warnings
|
||||||
#endif // POCO_COMPILER_GCC && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 406)
|
#endif // POCO_COMPILER_GCC && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 406)
|
||||||
|
|
||||||
|
|||||||
65
Foundation/src/AndroidLogChannel.cpp
Normal file
65
Foundation/src/AndroidLogChannel.cpp
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
//
|
||||||
|
// AndroidLogChannel.cpp
|
||||||
|
//
|
||||||
|
// $Id: //poco/1.4/Foundation/src/AndroidLogChannel.cpp#2 $
|
||||||
|
//
|
||||||
|
// Library: Foundation
|
||||||
|
// Package: Logging
|
||||||
|
// Module: AndroidLogChannel
|
||||||
|
//
|
||||||
|
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
|
||||||
|
// and Contributors.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: BSL-1.0
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#include "Poco/AndroidLogChannel.h"
|
||||||
|
#include "Poco/Message.h"
|
||||||
|
|
||||||
|
#include <android/log.h>
|
||||||
|
|
||||||
|
|
||||||
|
namespace Poco {
|
||||||
|
|
||||||
|
|
||||||
|
AndroidLogChannel::AndroidLogChannel(const std::string &tag) :
|
||||||
|
_tag(tag)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
AndroidLogChannel::~AndroidLogChannel()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void AndroidLogChannel::log(const Message& msg)
|
||||||
|
{
|
||||||
|
int prio = ANDROID_LOG_DEBUG;
|
||||||
|
switch (msg.getPriority())
|
||||||
|
{
|
||||||
|
case Message::PRIO_FATAL:
|
||||||
|
prio = ANDROID_LOG_FATAL;
|
||||||
|
break;
|
||||||
|
case Message::PRIO_CRITICAL:
|
||||||
|
case Message::PRIO_ERROR:
|
||||||
|
prio = ANDROID_LOG_ERROR;
|
||||||
|
break;
|
||||||
|
case Message::PRIO_WARNING:
|
||||||
|
prio = ANDROID_LOG_WARN;
|
||||||
|
break;
|
||||||
|
case Message::PRIO_NOTICE:
|
||||||
|
case Message::PRIO_INFORMATION:
|
||||||
|
prio = ANDROID_LOG_INFO;
|
||||||
|
break;
|
||||||
|
case Message::PRIO_TRACE:
|
||||||
|
prio = ANDROID_LOG_VERBOSE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
__android_log_print(prio, _tag.c_str(), msg.getText().c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace Poco
|
||||||
|
|
||||||
Reference in New Issue
Block a user