Metrics
0
Watch 20 Star 45 Fork 11

itfriday / xxloggerObjective-CLGPL-2.1

Sign up for free
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
轻量级日志打印工具类,提供对java, object-c, c的支持 spread retract

Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

xxlogger

xxlogger是日志打印工具类,提供对java, object-c, c的支持。xxlogger中的xx指某种语言

其中:

    c目录下的是c语言的实现

    oc目录下的是object-c语言的实现

    java目录下的是java语言的实现

主要功能包括:

1. 将日志输出到指定文件

2. 可指定日志文件的最大大小

3. 日志文件大小超过最大大小,会自动备份原日志文件

4. 日志分不同的级别,可配置最小级别,级别高于或等于最小级别的才会打印

5. 可以很方便地扩充日志级别

为什么会有xxlogger

因为想要一个简单的实现。无论是代码、还是使用,都要简单。大名鼎鼎的log4xx,虽然功能强大,但是太复杂了,配置也复杂,不利于维护,一般的应用根本用不到它的一些特性

所以,如果您和我一样,想要一个简单、干净、纯粹的代码,那么xxlogger会是一个不错的选择。

如何使用xxlogger

xxlogger的使用非常简单,您只需要在主程序中,调用initLogger进行一次初始化,在其他地方就可以使用了。

一、java - android:

    1. 建议在Application的onCreate函数中调用initLogger初始化日志

        LogManager.getInstance().initLogger("logfilename.log", LogLevel.LOG_LV_ERROR, 1024000); // 设置日志文件名,日志级别,最大日志大小(约1M)

    2. 需要打印日志的地方,调用相应的功能函数打印日志

        LogManager.getInstance().getLogger().debug("这是一个debug级别的日志,调试信息:%s", "调试");

        LogManager.getInstance().getLogger().info("这是一个info级别的日志,信息:%s", "信息");

        LogManager.getInstance().getLogger().error("发生错误了,错误码:%d, 错误信息:%s", errCode, "错误信息");

二、object-c:

    1. 在AppDelegate的didFinishLaunchingWithOptions函数中调用initLogger初始化日志

        如果您在info.plist中配置了AppLogFileName(日志文件名称,不含路径)、AppLogLevel(日志级别,可配置DEBUG、PROTOCOL、INFO、WARN、ERROR这几个级别)、AppMaxLogLevel(最大日志大小)这几个配置项,可以直接调用initLogger初始化:

            [[LogManager getInstance] initLogger];

        如果没有在info.plist中配置上面的参数,则需要指定日志文件名(需包含文件路径)、日志级别、日志大小:

            [[LogManager getInstance] initLogger:"logFileName" logLevel:LOG_LEVEL_ERROR maxLogSize:1024000];

    2. 需要打印日志的地方,调用相应的功能函数打印日志

        LOGING_DEBUG(@"这是一个debug级别的日志,调试信息:%@", @"调试");

        LOGING_ERROR(@"发生错误了,错误码:ld, 错误信息%@", errCode, @"错误信息");

三、c:

    1. 在包含main函数的c文件中先定义一个全局的日志对象

        LOGGER g_stLogger;

    2,在main函数中调用init_logger初始化日志

        init_logger(&g_stLogger, "logPath", "logFileName", "logLevel", 4096000, 10);

        指定日志最大大小为4M,如果超过了4M,将备份当前日志文件。这里设置的最大备份日志文件数量是10个。当备份文件超过了10个,会覆盖最早备份的日志。

    3. 需要打印日志的地方,调用相应的功能函数打印日志

        LOG_DEBUG("这是一个debug级别的日志,调试信息:%s", "调试");

        LOG_ERROR("发生错误了,错误码:%d, 错误信息%s", errCode, "错误信息");

xxlogger的使用场景建议(Notice)

  1. c语言的实现,是基于linux的,最好用于服务器的开发。它是非线程安全的,适合无锁编程。一般高性能的服务器都是单进程单线程的,资源的使用不需要加锁。所以它的应用场景比较适合单进程单线程的服务器开发。如果您的程序采用多线程,您可以修改代码自己加锁。

  2. object-c和java的实现,是线程安全的,可以用于多线程的应用。其中object-c的实现,是在一个独立的线程中输出日志,比较适合移动应用开发场景。

  3. java的实现请在android开发时使用,如果需要在其他环境下时候,替换掉对android的调用即可

其他,—— 没有了,:)

如果觉得不错,可以赞赏一下。有问题请关注我的微信公众号@itfriday与我互动

Comments ( 2 )

You need to Sign in for post a comment

Objective-C
1
https://gitee.com/itfriday/xxlogger.git
git@gitee.com:itfriday/xxlogger.git

Help Search