Использование Logback в Java-мостовом методе для React Native - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь изменить рабочее приложение. Я установил logback для Android из этого репозитория -> https://github.com/tony19/logback-android И после этого я создал мостовой метод для в файле Java, который изначально был мостовым и содержит другие методы @reactmethod.

Вот мой код Java (не полный код, просто вход в систему):

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> 

А вот код нативного recat для вызова метода моста из java (sandboxbutton - оригинальная кнопка приложения, я только что изменил ее функцию):

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

  }

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

Приложение успешно компилируется, но проблема возникает, когда я нажимаю на кнопку. Ничего не происходит :( Приложение даже не создает мой файл Data.csv ..

Любое помутнение?

1 Ответ

0 голосов
/ 09 сентября 2018

Неправильная конфигурация 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>
...