在桥接java方法中使用Logback for React Native

问题描述 投票:2回答:1

我正在尝试修改工作应用。我从这个存储库安装了android的logback - > https://github.com/tony19/logback-android之后我在java文件中创建了bridged方法,它最初是桥接的并且包含其他@reactmethod方法。

这是我的java代码(不是完整的代码,只是logback的东西):

package com.eeg_project.components.classifier;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ClassifierModule extends ReactContextBaseJavaModule implements BufferListener {

    // Logback
    private static Logger logger = LoggerFactory.getLogger(ClassifierModule.class);

    @ReactMethod
    public void startSaveCSV() {

        //test ints
        int a = 2;
        int b = 2;

        String csvLine = a + "," + b;
        logger.info(csvLine);
    }
}

我的logback.xml配置如下:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{dd-MM-yyyy HH:mm:ss.SSS} %-5level [%thread] %logger - %msg%n
            </Pattern>
        </layout>
    </appender>
    <appender name="FILE-APPENDER" class="ch.qos.logback.core.FileAppender">
        <file>/storage/emulated/0/Download/Data.csv</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %msg%n
            </Pattern>
        </encoder>
    </appender>
    <logger name="com.eeg_project.components.classifier.ClassifierModule" level="info" additivity="false">
        <appender-ref ref="FILE-APPENDER" />
    </logger>
    <root level="info">
        <appender-ref ref="STDOUT" />
    </root>
</configuration> 

以下是从java调用桥接方法的本机反应代码(沙盒按钮是原始应用程序按钮,我只是更改了它的功能):

import Classifier from "../native/Classifier";

  }

   <SandboxButton onPress={() => Classifier.startSaveCSV()}>CSV</SandboxButton>

应用程序编译成功,但当我点击我的按钮时出现问题。什么都没发生:( App甚至没有创建我的Data.csv文件..

任何解决方案?

java android react-native logging logback
1个回答
1
投票

logback.xml的配置错误。这是我的解决方案:

<configuration>
  <!-- Create a file appender for a log in the application's data directory -->
  <appender name="file" class="ch.qos.logback.core.FileAppender">
    <file>/data/data/com.eeg_project/files/log/eegdata.log</file>
    <encoder>
      <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- Write INFO (and higher-level) messages to the log file -->
  <root level="INFO">
    <appender-ref ref="file" />
  </root>
</configuration>
© www.soinside.com 2019 - 2024. All rights reserved.