• Geek_97bcf5
    2019-04-13
    一般大厂的app都不会用NSLog来打印日志的,我不知道滴滴打车是否用NSLog来打印日志,所以,本文的方案并不符合生产环境。日志是需要分类的,需要压缩,需要加密,实时染色等。NSLog根本不可能完成这些功能,所以,大厂的app都有专门的日志框架。各个模块中也不会用NSLog来输出日志。

    作者回复: 对,大厂都有自己的日志框架。可能是一套或者多套。也有很多直接包装了CocoaLumberjack。加解密一般都是安全团队统一处理的,不光用在日志上。

     1
     12
  • daniel
    2019-05-31
    static void(*orig_nslog) (NSString *format,...); 这里声明的时候是*号不是&号,声明是一个对象,估计老师那边打错了
    还有下面这段代码
    va_list va;
        va_start(va,format);
        NSLogv(format, va);
        va_end(va);
    可以换成orig_nslog(format) ,这时候我们的orig_nslog就是原来NSLog在Mach-o中的地址了,这时候可以直接拦截使用了,老师希望课里面代码可以检查仔细点再发出来,好多次直接报错,然后又找不到原因,这样挺打击人的。。。还有注释可以再清楚点
    展开
    
     2
  • Ant
    2019-04-17
    温故而知新, 对我来说是反过来说的, 知新而温故。
    main函数执行之前
    加载可执行文件、
    加载动态链接库rebase指针调整和bind符号绑定、
    运行时开始处理,
    objc类注册,category注册,selector唯一性检查,
    load方法,attribute修饰函数调用,
    创建c++静态全局变量
    展开
    
     1
  • drunkenMouse
    2019-04-13
    所以,几个人的小团队直接使用统一的日志库就可以了?

    syslogd是一个进程,保护系统接收分发日志消息的进程?

    CocoaLumberJack这段有点乱,整理了一下:

    captureAslLogs方法对ASL日志的处理措施是:将日志消息转换成char * 字符串类型,然后再转成NSString类型,随后将其记录。
    记录使用DDLog:log:message:方法。
    记录时需要将NSString转成DDLogMessage类型,而DDLogMessage设置了日志级别,所以转换类型后也要设置日志级别。

    NSLog的日志级别是Verbose。

    最后,iOS10之后,为了兼容新的统一日志系统,需要对NSLog日志的输出进行重定向。iOS10之后CocoaLumberJack获取不到NSLog的日志了?
    展开

    作者回复: 是的

    
     1
  • 大年初一
    2019-12-21
    微信的 xlog 也不错
    
    
  • dingdongfm
    2019-06-10
    如果需要获取最终用户手机上的日志来定位问题的话,一般怎么获取日志?
    
    
  • mersa
    2019-06-02
    写文件不是耗电,还有影响app运行性能么。这个产线情况怎么能够保存全量日志同时性能和耗电都能最低
    
    
  • 二木又土
    2019-04-25
    对App来说,网络请求使用AFNetworking,怎么把网络请求的log优雅点的过滤打印出来?另外log,在控制台还会遇到字符串太长显示被截断的问题
    
    
  • lianleven
    2019-04-19
    老师问个问题:如果服务端几乎同时到达客户端1000条消息,这个时候该如何用多线程处理
    
    
  • James
    2019-04-18
    因为团队不大,项目日志采用的方式为freopen重定向stderr类型的日志到本地文件的方式,并没有引入三方库,请问这种方式有什么缺点?
    另外大厂的所谓日志框架具体是怎么记录日志的?难道底层实现完全不用NSLog或print吗?
    
    
  • jimbo
    2019-04-16
    static void (&orig_nslog)(NSString *format, ...); 这里是不是应该变成 static void (*orig_nslog)(NSString *format, ...); 不然报错
    
    
  • Geek_f0e049
    2019-04-14
    上周才第一次用CocoaLumberjack做了日志系统,并且看了fishhook的原理,这次看这篇文章就全用上了,太nice了,对两者的使用和理解更深了。哈哈😄

    作者回复: 赞

    
    
  • drunkenMouse
    2019-04-13
    ASL在iOS10.0之后没法用了。所以CocoaLumberJack无法获取到所有的日志,但除了NSLog日志外,别的日志都能获取到吗?

    作者回复: CocoaLumberJack 其他日志不受影响

    
    
我们在线,来聊聊吧