问题标签 [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.

0 投票
1 回答
45 浏览

android - 在应用程序关闭时刷新 RxJava 缓冲区

使用 Timber,我编写了一个FileTree记录器,它将 Android 日志写入磁盘上的文件。我缓冲日志,每 2 分钟刷新到磁盘,或 100 条日志消息,以先到者为准。缓冲区防止每条日志消息触发 IO 写入,以免立即写入每条日志消息而导致 IO 资源过载。

RxJava用来处理这个任务。一个简短的片段(取自此处):

如果我需要手动触发刷新,我会使用“刷新”主题。我在's内种植FileTreeTimber :ApplicationonCreate()

这也是RxJava设置订阅的地方。我对此有两个问题:

  • 如果应用程序由于某种原因关闭,则日志刷新可能不会由计时器或接收到足够的日志消息触发。我是否应该简单地手动调用 flush 在each ActivityonDestroy()函数中?有一个更好的方法吗?
  • 其次,RxJava抱怨我忽略了“.subscribe()”的结果,大概是因为我永远不会调用dispose()它。我不确定如何处理这种情况。订阅与应用程序本身具有相同的生命周期,因此我不确定在特定Activity的 's中删除它onDestroy是否有意义。此外,我的应用程序有几个入口点(主要活动、后台服务和其他一些)都使用了日志记录工具,因此何时取消订阅/处置RxJava订阅尚不清楚。我的直觉是我不需要处理它们,因为只要操作系统删除应用程序,它们就会被清除。有任何想法吗?
0 投票
4 回答
303 浏览

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 {...} 中。它会导致意外行为。

0 投票
2 回答
89 浏览

android - 为什么一旦活动在 Android 中重新启动其生命周期,Timber 日志会生成两次日志消息?

在我的 Android 项目开发过程中,我遇到了鼓励使用 Timber 日志库的情况;但是当我切换到使用它时,我发现一旦我放置的活动 Timber.plant(new Timber.DebugTree());重新启动其生命周期(第二次调用onCreate(savedInstanceState)),Timber 生成的所有日志都会在 LogCat 面板中生成两次。

这个简单的代码说明了这个问题:

现在,当我运行应用程序并旋转屏幕(这将导致 Activity 销毁并再次重新创建)时,LogCat 的内容如下:

所以无论如何这仍然是我第一次使用 Timber,我不知道我们是否应该在任何地方放置任何代码来处理这种情况。虽然这看起来足够无害,但我目前正在做的项目涉及从 LogCat 面板进行大量调试,并且查看两倍的信息来调试应用程序确实很麻烦。

0 投票
0 回答
16 浏览

android - 如何在android上将flurry与木材集成

我正在使用木材进行伐木。我怎样才能将它与flurry集成

是否有用于此的开源库,例如sentry-android-timberSentry监控之类的。

0 投票
0 回答
17 浏览

android - 拦截生产中的工人经理错误

我正在使用sentry + timber离线缓存集成来记录我的应用程序中的所有错误。

在生产工人经理的某些设备中根本不起作用。我怎样才能拦截工人经理的错误并用木材记录它们,这样我就可以在哨兵上看到它们

谢谢

0 投票
1 回答
218 浏览

android - 无法解析方法“植物(timber.log.Timber.DebugTree)”

我的配置或代码有什么问题?
我突出显示了这个错误

无法解析方法“植物(timber.log.Timber.DebugTree)”

对于代码

但它会构建并执行。我仍然认为这意味着什么,不是吗?

配置信息:

0 投票
0 回答
20 浏览

android - 木材按标签过滤日志

使用 Timber 时,我可以看到自动生成的标签,这很好。但是,我无法真正在代码中访问这些标签。我只能在 Logcat 中看到它们,但我不知道如何过滤它们。

我知道可以只为调试版本打开日志记录:

但是,这对我来说不是很有用。我试着做:

但我得到:

..这对我来说毫无意义。

有什么方法可以按标签过滤木材日志吗?

先感谢您!