Meituan-Dianping / Logan

Logan is a lightweight case logging system based on mobile platform.
https://tech.meituan.com/logan_open_source.html
MIT License
5.73k stars 876 forks source link

如何去定制Logan #517

Open Allen-ZXJ opened 5 months ago

Allen-ZXJ commented 5 months ago

我想要保存俩份日志文件,一份写入性能相关,一份写入业务相关的,要怎么做,我需要深入去了解Native层源代码吗

Richard-Cao commented 5 months ago

目前日志都是存在一个文件里的,但是Logan可以定制type,也就是日志类型,所以我建议你通过type区分你的日志类型就好了,type不需要改源码,上层可以设置

Allen-ZXJ commented 5 months ago

感谢回复!!type不满足我们的需求场景,我们想要的是一天能生成俩份日志,然后命名按我们需要的来。也就是一份性能,一份业务,如20240603_profile , 20240603_operation这样子。然后每份日志中的type我们会根据不同场景来区分是哪些业务模块的日志,以便于我们回捞。

Richard-Cao commented 5 months ago

感谢回复!!type不满足我们的需求场景,我们想要的是一天能生成俩份日志,然后命名按我们需要的来。也就是一份性能,一份业务,如20240603_profile , 20240603_operation这样子。然后每份日志中的type我们会根据不同场景来区分是哪些业务模块的日志,以便于我们回捞。

哦这样的话,那你得改代码定制一下了

Allen-ZXJ commented 5 months ago

感谢回复哈!因为我没有定制的经验,以至于我不太清楚需要拉下那一个文件夹的代码下来,并继承到自己的项目中去修改源代码。请问大佬方便回复一下需要拉取哪个文件夹的源码嘛

Richard-Cao commented 5 months ago

感谢回复哈!因为我没有定制的经验,以至于我不太清楚需要拉下那一个文件夹的代码下来,并继承到自己的项目中去修改源代码。请问大佬方便回复一下需要拉取哪个文件夹的源码嘛

你要看下C这部分了

Allen-ZXJ commented 5 months ago

好的感谢大佬,可能我没表达清楚哈。

wsxyeah commented 5 months ago

一种思路是把全局状态抽到一个 struct 里用来保存实例状态,然后在执行具体操作时传入一个指针,来实现多实例的隔离。

C 层主要涉及 clogan_core.c

Allen-ZXJ commented 5 months ago

感谢大佬回复哈!是我没表达清楚。 其实我的问题是不清楚要取这个Logan项目中的哪些源码放到我自己的项目中去。因为我没有改过三方SDK并集成进自己项目里的经验。 @wsxyeah 我其实想知道哪些文件【java,c,头文件】是logan android sdk有用到的,我想把他们copy到我的项目中运行起来,然后再单独分析一下源码,看如何修改定制

Richard-Cao commented 5 months ago

感谢大佬回复哈!是我没表达清楚。 其实我的问题是不清楚要取这个Logan项目中的哪些源码放到我自己的项目中去。因为我没有改过三方SDK并集成进自己项目里的经验。 @wsxyeah 我其实想知道哪些文件【java,c,头文件】是logan android sdk有用到的,我想把他们copy到我的项目中运行起来,然后再单独分析一下源码,看如何修改定制

java:https://github.com/Meituan-Dianping/Logan/tree/master/Example/Logan-Android/logan c:https://github.com/Meituan-Dianping/Logan/tree/master/Logan/Clogan

Allen-ZXJ commented 5 months ago

太感谢了大佬!