Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 需要在robotium中设置脚本级日志记录_Android_Logback_Robotium - Fatal编程技术网

Android 需要在robotium中设置脚本级日志记录

Android 需要在robotium中设置脚本级日志记录,android,logback,robotium,Android,Logback,Robotium,我正在尝试在测试脚本中设置日志记录(无论出于何种原因),如: 我在使用Java时使用过log4j,它似乎工作得很好,但在android/robotium上却不行。 我使用了slf4j-api-1.7.5.jar和logback-android-1.0.10-2.jar。 脚本工作正常,但在所需位置的文件中未生成日志。配置文件设置: <configuration> <appender name="FILE" class="ch.qos.logback.core.FileAp

我正在尝试在测试脚本中设置日志记录(无论出于何种原因),如:

我在使用Java时使用过log4j,它似乎工作得很好,但在android/robotium上却不行。 我使用了slf4j-api-1.7.5.jar和logback-android-1.0.10-2.jar。 脚本工作正常,但在所需位置的文件中未生成日志。配置文件设置:

<configuration>
   <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <!-- "application-name" is a variable -->
    <File>f:/Logger/test.log</File>
    <layout class="ch.qos.logback.classic.PatternLayout">
     <Pattern>%d %p %t %c - %m%n</Pattern>
    </layout>
   </appender>
   <root level="INFO">
        <appender-ref ref="FILE"/>
   </root>
</configuration> 

f:/Logger/test.log
%d%p%t%c-%m%n
我想要实现的是在磁盘上的日志文件中输入/发送所有文本。(我们使用System.out.Println在控制台上发送文本的方式,在本例中,我希望将其发送到一个文件)。 我曾尝试将配置文件放在类路径中,但也没有任何帮助。
非常感谢您提供的任何帮助。

我使用LoggerContext的动态配置完成了这项工作

LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory();
PatternLayoutEncoder encoder1 = new PatternLayoutEncoder();
encoder1.setContext(lc);
encoder1.setPattern(messageFormat);
encoder1.start();

FileAppender<ILoggingEvent> appender = new FileAppender<ILoggingEvent>();
appender.setContext(lc);
String logFileName = context.getDir(DEFAULT_LOGDIR, DEFAULT_LOGDIR_MODE).getAbsolutePath() + "/test.log" ;
appender.setFile(logFileName);
appender.setEncoder(encoder1);

appender.start() ; 
LoggerContext lc=(LoggerContext)LoggerFactory.getILoggerFactory();
PatternLayoutCoder编码器1=新的PatternLayoutCoder();
编码器1.setContext(lc);
编码器1.setPattern(messageFormat);
编码器1.start();
FileAppender appender=新FileAppender();
appender.setContext(lc);
字符串logFileName=context.getDir(默认的LOGDIR,默认的LOGDIR模式)。getAbsolutePath()+“/test.log”;
appender.setFile(日志文件名);
appender.setEncoder(编码器1);
appender.start();

尝试将简单的文件名命名为test.log。其中任何一个文件名回答了您的问题吗?我已经尝试过使用简单的文件名,但不幸的是,我没有成功。我在logcat中获取日志,使用microlog4android,我可以写入SD卡,但不能写入系统上的文件。是否有更简单的库/方法来使用/配置日志,因为在我的情况下,日志会很大??
LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory();
PatternLayoutEncoder encoder1 = new PatternLayoutEncoder();
encoder1.setContext(lc);
encoder1.setPattern(messageFormat);
encoder1.start();

FileAppender<ILoggingEvent> appender = new FileAppender<ILoggingEvent>();
appender.setContext(lc);
String logFileName = context.getDir(DEFAULT_LOGDIR, DEFAULT_LOGDIR_MODE).getAbsolutePath() + "/test.log" ;
appender.setFile(logFileName);
appender.setEncoder(encoder1);

appender.start() ;