如何使用 1 个进程从 2 个安卓应用程序记录到 1 个日志文件中



我正在使用一个应用程序(在Process1 P1中运行(,该应用程序在单独的进程中启动Android服务(在Process2 P2中运行(。

使用android os>= API 23时,以下常见问题,然后必须授予WRITE_EXTERNAL_STORAGE权限才能创建日志记录目录并进行日志记录,已经通过初始化记录器上下文解决了:

val loggerContext :LoggerContext = LoggerFactory.getILoggerFactory() as LoggerContext
        loggerContext.reset()
        val contextInitializer = ContextInitializer(loggerContext)
        contextInitializer.autoConfig()

我使用滚动文件追加器,如下所示:

<appender name="myMultiProcessApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/log.txt</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- Group the logs by day -->
            <fileNamePattern>${LOG_DIR}/log-%d{yyyy-MM-dd}#%i.zip</fileNamePattern>
            <!-- Keeping DAYS_TO_KEEP (defaulting to 5) grouped logs - days in this case -->
            <maxHistory>${DAYS_TO_KEEP:-5}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- Assuming a compression ratio of 50% (very conservative) each compressed file should be less than 2MB -->
                <maxFileSize>${MAX_FILE_SIZE:-4Mb}</maxFileSize>
                <!-- Total Size Cap - this option is not available on logback-android, only on mainstream logback -->
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>[%date{ISO8601}] [%thread] %-5level %logger{36} %M - %msg%n</pattern>
        </encoder>
    </appender>

问题,情况:P1 和 P2 正在使用使用日志框架进行日志记录的类,但目前只有 P2 的日志出现在日志文件中!P2 将在 P1 授予所有必要的权限后从 P1 启动。

现在的问题:有谁知道,是否可以从 1 个带有登录的 Android 应用程序中使用的 2 个独立进程将日志写入 1 个文件中?我是否必须明确地为 P2 写入权限?

如果是,你能告诉我怎么做吗?

蒂亚·卢克

答案:是的,2 个进程可能同时写入 1 个日志文件。我们必须激活谨慎模式,该模式需要 3 倍的时间来记录,但在大多数情况下工作正常:

在文档中查看此处:文件追加器中谨慎模式的文档

谨慎模式具有以下限制:

  1. 文件属性中没有文件名。它将从文件名模式的命名开始。 <file></file>
  2. 不支持压缩。(问题中的示例,但使用.log而不是.zip(<fileNamePattern>${LOG_DIR}/log-%d{yyyy-MM-dd}#%i.log</fileNamePattern>

查看此处有关限制的信息:谨慎的限制

相关内容

  • 没有找到相关文章

最新更新