diff --git a/.gitignore b/.gitignore index 5524d609..b51a05b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# Auto generated files +# Auto generated files *.slo *.lo *.o @@ -46,6 +46,7 @@ example/* !example/example.vcxproj !example/CMakeLists.txt !example/multisink.cpp +!example/jni # generated files generated diff --git a/example/example.cpp b/example/example.cpp index 217d1433..2323b57d 100644 --- a/example/example.cpp +++ b/example/example.cpp @@ -13,6 +13,7 @@ void async_example(); void syslog_example(); +void android_example(); void user_defined_example(); void err_handler_example(); @@ -48,7 +49,6 @@ int main(int, char*[]) auto my_logger = spd::basic_logger_mt("basic_logger", "logs/basic.txt"); my_logger->info("Some log message"); - // Create a file rotating logger with 5mb size max and 3 rotated files auto rotating_logger = spd::rotating_logger_mt("some_logger_name", "logs/mylogfile", 1048576 * 5, 3); for (int i = 0; i < 10; ++i) @@ -76,6 +76,9 @@ int main(int, char*[]) // syslog example. linux/osx only syslog_example(); + // android example. compile with NDK + android_example(); + // Log user-defined types example user_defined_example(); @@ -119,6 +122,16 @@ void syslog_example() #endif } +// Android example +void android_example() +{ +#if defined(__ANDROID__) + std::string tag = "spdlog-android"; + auto android_logger = spd::android_logger("android", tag); + android_logger->critical("Use \"adb shell logcat\" to view this message."); +#endif +} + // user defined types logging by implementing operator<< struct my_type { @@ -148,4 +161,3 @@ void err_handler_example() }); spd::get("console")->info("some invalid message to trigger an error {}{}{}{}", 3); } - diff --git a/example/jni/Android.mk b/example/jni/Android.mk new file mode 100644 index 00000000..7accbad3 --- /dev/null +++ b/example/jni/Android.mk @@ -0,0 +1,15 @@ +# Setup a project +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE := example +LOCAL_SRC_FILES := example.cpp +LOCAL_CPPFLAGS += -Wall -Wshadow -Wextra -pedantic -std=c++11 -fPIE -pie +LOCAL_LDFLAGS += -fPIE -pie + +# Add exception support and set path for spdlog's headers +LOCAL_CPPFLAGS += -fexceptions -I../include +# Use android's log library +LOCAL_LDFLAGS += -llog + +include $(BUILD_EXECUTABLE) diff --git a/example/jni/Application.mk b/example/jni/Application.mk new file mode 100644 index 00000000..dccd2a5a --- /dev/null +++ b/example/jni/Application.mk @@ -0,0 +1,2 @@ +# Exceptions are used in spdlog. Link to an exception-ready C++ runtime. +APP_STL = gnustl_static diff --git a/example/jni/example.cpp b/example/jni/example.cpp new file mode 120000 index 00000000..6170abce --- /dev/null +++ b/example/jni/example.cpp @@ -0,0 +1 @@ +../example.cpp \ No newline at end of file