一个简单、漂亮、功能强大的Android日志程序:logger

android是一个简单、漂亮、功能强大的Android日志程序。

一个简单、漂亮、功能强大的Android日志程序:logger

日志程序提供了 :

  • 线程信息Thread information
  • 类信息Class information
  • 方法信息Method information
  • 漂亮打印的JSON内容Pretty-print for json content
  • Clean output
  • Jump to source feature

Gradle

compile 'com.orhanobut:logger:1.3'

当前的Log 系统

Log.d(TAG,"hello");

一个简单、漂亮、功能强大的Android日志程序:logger


Logger

Logger.d("hello");

一个简单、漂亮、功能强大的Android日志程序:logger


用法

?
1
2
3
4
5
6
Logger.d( "hello" );
Logger.e( "hello" );
Logger.w( "hello" );
Logger.v( "hello" );
Logger.wtf( "hello" );
Logger.json(JSON_CONTENT);


Change TAG

All logs

Logger.init(YOUR_TAG);

Log based

Logger.d("mytag", "hello");

一个简单、漂亮、功能强大的Android日志程序:logger


Settings (optional)

Change the settings with init. This should be called only once. Best place would be in application class. All of them are optional.

?
1
2
3
4
5
Logger
    .init(YOUR_TAG)                // default tag : PRETTYLOGGER or use just init()
    .setMethodCount( 3 )             // default 2
    .hideThreadInfo()              // default it is shown
    .setLogLevel(LogLevel.NONE);   // default : LogLevel.FULL


Note: Use LogLevel.NONE for the release versions.


More log samples
?
1
2
3
Logger.d( "hello" );
Logger.e(exception);
Logger.json(JSON_CONTENT);

一个简单、漂亮、功能强大的Android日志程序:logger


Method info

Observe the caller methods in the order they are invoked and also thread information.

void methodA(){
   methodB();
} void methodA(){ Logger.d("hello");
}

Both method information will be shown in the order of invocation.

一个简单、漂亮、功能强大的Android日志程序:logger


You might also like
  • Hawk Simple,powerful,secure key-value storage
  • Wasp All-in-one network solution
  • Bee QA/Debug tool
  • DialogPlus Easy,simple dialog solution
  • SimpleListView Simple basic listview implementation with linearlayout

项目主页:http://www.open-open.com/lib/view/home/1427166371418

orhanobut / logger

Watch 1846 Fork 317

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您设计一个功能复杂强大的spdlog日志系统,以满足更高级别的需求。 首先,我们可以创建一个Log类,该类可以包含以下方法: 1. 初始化:初始化spdlog配置,如设置日志文件名、日志等级、日志滚动周期等。 2. 打印日志:可以包含多个重载方法,用于打印不同等级的日志信息。 3. 设置日志等级:可以设置日志输出的最低等级,低于该等级的日志信息将不会被输出。 4. 关闭:关闭日志系统,释放资源。 5. 添加输出器:可以添加多个输出器,以支持输出到不同的地方,如文件、控制台、网络等。 6. 添加滚动策略:可以添加多个滚动策略,以支持按大小、按时间等不同的滚动策略。 7. 自定义日志格式:可以支持自定义日志格式,以便更好地满足不同需求。 8. 多线程日志:支持多线程环境下的日志输出,以避免日志信息的混乱。 9. 日志级别过滤:支持按照日志级别进行过滤,以便更好地查看和管理日志信息。 10. 日志文件压缩:支持对日志文件进行压缩,以便更好地管理和存储日志信息。 11. 日志审计:支持对日志信息进行审计,以便更好地发现和分析异常情况。 12. 日志监控:支持对日志信息进行实时监控,以便更好地发现和排查问题。 13. 日志分析:支持对日志信息进行分析,以便更好地了解应用程序的运行情况和性能瓶颈。 14. 日志告警:支持对日志信息进行告警,以便更好地发现和处理异常情况。 针对以上方法,我们可以根据实际需求进行实现。以下是一个简单的示例代码,展示了如何实现一个功能复杂强大的spdlog日志系统: ``` #include <iostream> #include "spdlog/spdlog.h" #include "spdlog/sinks/basic_file_sink.h" class Log { public: static Log& getInstance() { static Log instance; return instance; } void init() { // 创建默认日志器 auto logger = spdlog::basic_logger_mt("basic_logger", "logs/basic.log"); // 设置默认日志等级 logger->set_level(spdlog::level::trace); logger->flush_on(spdlog::level::trace); // 添加输出器 auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>(); console_sink->set_level(spdlog::level::trace); logger->sinks().push_back(console_sink); // 添加滚动策略 auto daily_sink = std::make_shared<spdlog::sinks::daily_file_sink_mt>("logs/daily.log", 23, 59); daily_sink->set_level(spdlog::level::trace); logger->sinks().push_back(daily_sink); // 自定义日志格式 spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] [thread %t] %v"); // 设置默认日志器 spdlog::set_default_logger(logger); } void log_trace(const std::string& message) { spdlog::trace(message); } void log_debug(const std::string& message) { spdlog::debug(message); } void log_info(const std::string& message) { spdlog::info(message); } void log_warn(const std::string& message) { spdlog::warn(message); } void log_error(const std::string& message) { spdlog::error(message); } void log_critical(const std::string& message) { spdlog::critical(message); } void set_level(spdlog::level::level_enum level) { spdlog::set_level(level); } void flush() { spdlog::flush_every(std::chrono::seconds(60)); } void close() { spdlog::shutdown(); } private: Log() {} Log(Log const&); void operator=(Log const&); }; int main() { Log& logger = Log::getInstance(); logger.init(); logger.log_debug("Debug message"); logger.log_info("Info message"); logger.log_warn("Warning message"); logger.log_error("Error message"); logger.log_critical("Critical message"); logger.set_level(spdlog::level::warn); logger.log_trace("Trace message"); logger.flush(); logger.close(); return 0; } ``` 在这个示例代码中,Log类实现了单例模式,并包含了初始化、打印日志、设置日志等级、刷新和关闭等方法。通过调用Log类的方法,可以实现打印不同等级的日志信息,设置日志输出的最低等级,以及刷新和关闭日志系统等操作。 需要注意的是,在使用spdlog时,我们需要将spdlog库的头文件和库文件添加到项目中,并将库文件链接到应用程序中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值