【问题标题】:Java:How to use two different logging systems depending on running environmentJava:如何根据运行环境使用两种不同的日志系统
【发布时间】:2012-02-19 10:41:49
【问题描述】:

我开发了一个使用 apache log4j 库的应用程序/库。 现在我想将该库也用于 Android 应用程序,其中通常的 log4j 库不起作用。

现在我知道有一些库 lis slf4j o log4j for android,但我的想法是使用可用的 log4j 库(然后当库在计算机上运行时)并在运行时使用 Android 日志记录工具Android 设备。

有可能吗? 我认为解决方案应该是实现一个内部 Logger 类来选择可用的日志记录系统。

  • 这是个好主意吗?
  • 还是只选择一个日志系统更好?
  • 或者也许更好的是内部记录器类在两个不同的版本中实现,第一个用于真实 PC,第二个用于 Android。

还有:

  • 如何检测运行环境? (是在 Android 上还是在电脑上?是否足以检测我是在 DalvikVM 还是 JavaVM 上?有可能吗?

感谢任何帮助/建议。

【问题讨论】:

  • 一种常见的方法是使用反射来确定某个包/类在运行时是否可用,并根据它通过工厂模式创建特定于平台的接口对象。
  • 好主意,我没想到!谢谢。

标签: android log4j logging


【解决方案1】:

您可以使用 Java 日志记录。它也可以在android API 上找到。 android上的这个api似乎代表android.util.Log。

请注意,默认情况下,只有消息 INFO 和 up 会打印在 logcat 上。如果您想查看较低的日志级别,可以在设备上设置属性 (more info):

adb -e shell setprop log.name DEBUG

记得在你的库中设置 java 日志级别:

Logger.setLevel (java.util.logging.Level.FINER);

希望有帮助

【讨论】:

    猜你喜欢
    • 2018-03-17
    • 1970-01-01
    • 2014-12-05
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 2017-02-15
    相关资源
    最近更新 更多