问题标签 [timber-android]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在应用程序关闭时刷新 RxJava 缓冲区
使用 Timber,我编写了一个FileTree
记录器,它将 Android 日志写入磁盘上的文件。我缓冲日志,每 2 分钟刷新到磁盘,或 100 条日志消息,以先到者为准。缓冲区防止每条日志消息触发 IO 写入,以免立即写入每条日志消息而导致 IO 资源过载。
我RxJava
用来处理这个任务。一个简短的片段(取自此处):
如果我需要手动触发刷新,我会使用“刷新”主题。我在's内种植FileTree
Timber :Application
onCreate()
这也是RxJava
设置订阅的地方。我对此有两个问题:
- 如果应用程序由于某种原因关闭,则日志刷新可能不会由计时器或接收到足够的日志消息触发。我是否应该简单地手动调用 flush 在each
Activity
的onDestroy()
函数中?有一个更好的方法吗? - 其次,
RxJava
抱怨我忽略了“.subscribe()”的结果,大概是因为我永远不会调用dispose()
它。我不确定如何处理这种情况。订阅与应用程序本身具有相同的生命周期,因此我不确定在特定Activity
的 's中删除它onDestroy
是否有意义。此外,我的应用程序有几个入口点(主要活动、后台服务和其他一些)都使用了日志记录工具,因此何时取消订阅/处置RxJava
订阅尚不清楚。我的直觉是我不需要处理它们,因为只要操作系统删除应用程序,它们就会被清除。有任何想法吗?
android - 如何在 Kotlin 中初始化用于对象表达式的 lateinit 变量?
这不是重复。“对象”表达式是关键字。
我正在尝试将 Timber Android 库与https://github.com/orhanobut/logger集成,我需要一个 customLogStrategyForTimber 来满足我的需要。
我想出了这个逻辑。但是我在初始化时遇到了困难customLogStrategyForTimber
customLogStrategyForTimber
永远不会初始化。有没有更好的方法来做这个逻辑?尝试formatStrategy
在第一个覆盖有趣的日志方法中添加整个代码会导致使用 Timber 日志记录时出现意外行为,因此这似乎不是一个简单的选择。
运行应用程序时崩溃
也试过使用isInitialized
。
它里面的代码永远不会运行。
编辑:
创建了一个示例项目:https ://github.com/shipsywor/demotimberlogger
编辑2:
我println
在上面的代码中添加了语句。您将看到::customLogStrategyForTimber.isInitialized
在代码的一个点返回 False,在另一个点返回 True
注意:我不能将 formatStrategy 代码放在 Timber.plant {...} 中。它会导致意外行为。
android - 为什么一旦活动在 Android 中重新启动其生命周期,Timber 日志会生成两次日志消息?
在我的 Android 项目开发过程中,我遇到了鼓励使用 Timber 日志库的情况;但是当我切换到使用它时,我发现一旦我放置的活动 Timber.plant(new Timber.DebugTree());
重新启动其生命周期(第二次调用onCreate(savedInstanceState)
),Timber 生成的所有日志都会在 LogCat 面板中生成两次。
这个简单的代码说明了这个问题:
现在,当我运行应用程序并旋转屏幕(这将导致 Activity 销毁并再次重新创建)时,LogCat 的内容如下:
所以无论如何这仍然是我第一次使用 Timber,我不知道我们是否应该在任何地方放置任何代码来处理这种情况。虽然这看起来足够无害,但我目前正在做的项目涉及从 LogCat 面板进行大量调试,并且查看两倍的信息来调试应用程序确实很麻烦。
android - 如何在android上将flurry与木材集成
是否有用于此的开源库,例如sentry-android-timber对Sentry监控之类的。
android - 拦截生产中的工人经理错误
我正在使用sentry + timber
离线缓存集成来记录我的应用程序中的所有错误。
在生产工人经理的某些设备中根本不起作用。我怎样才能拦截工人经理的错误并用木材记录它们,这样我就可以在哨兵上看到它们
谢谢
android - 无法解析方法“植物(timber.log.Timber.DebugTree)”
我的配置或代码有什么问题?
我突出显示了这个错误
无法解析方法“植物(timber.log.Timber.DebugTree)”
对于代码
但它会构建并执行。我仍然认为这意味着什么,不是吗?
配置信息:
android - 木材按标签过滤日志
使用 Timber 时,我可以看到自动生成的标签,这很好。但是,我无法真正在代码中访问这些标签。我只能在 Logcat 中看到它们,但我不知道如何过滤它们。
我知道可以只为调试版本打开日志记录:
但是,这对我来说不是很有用。我试着做:
但我得到:
..这对我来说毫无意义。
有什么方法可以按标签过滤木材日志吗?
先感谢您!