如何在设备上查看登录android/slf4j文件?
辅助堆栈, 我正在调试一个应用程序,它需要一个外设插入我的Droid Turbo的USB端口。我决定使用logback android和slf4j登录到内部存储上的文件,然后查看片段上的日志文件。 以下是相关代码: LogFragment.java:如何在设备上查看登录android/slf4j文件?,android,android-fragments,textview,slf4j,logback,Android,Android Fragments,Textview,Slf4j,Logback,辅助堆栈, 我正在调试一个应用程序,它需要一个外设插入我的Droid Turbo的USB端口。我决定使用logback android和slf4j登录到内部存储上的文件,然后查看片段上的日志文件。 以下是相关代码: LogFragment.java: /** Displays log file for ElkaUsbTransfer app */ @SuppressWarnings("deprecation") public class LogFragment extends Fragment
/** Displays log file for ElkaUsbTransfer app
*/
@SuppressWarnings("deprecation")
public class LogFragment extends Fragment {
public static final String ARG_OBJECT = "MAIN_LOG_PAGE";
Logger log_ = LoggerFactory.getLogger(LogFragment.class);
private String page_ = "Main Log";
StringBuilder log_sb_;
File f_;
public void onAttach(Activity activity) {
super.onAttach(activity);
log_sb_ = new StringBuilder(""); // will this reload correctly?
f_=new File(getActivity().getApplicationContext(
).getFilesDir()+File.separator+"elkaUsbTransfer.txt");
for (String s:getActivity().getApplicationContext().fileList()) {
log_sb_.append(s+"\n");
}
log_.debug("stuff");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main_log, container, false);
TextView logLabel = (TextView) rootView.findViewById(R.id.main_log);
readLog();
logLabel.setText(log_sb_.toString());
return rootView;
}
protected void readLog() {
try {
//Process process = Runtime.getRuntime().exec(
// "logcat -d | grep com.example.agrc.elkausbtransfer | cut -c10-15");
//BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
BufferedReader br = new BufferedReader(new FileReader(f_));
String line;
while((line=br.readLine()) != null) {
log_sb_.append(line+"\n");
}
} catch (IOException e) {
log_sb_.append(e.toString());
}
}
}
logback.xml:
<configuration>
<appender name="file" class="ch.qos.logback.core.FileAppender">
<!-- Create file appender for a log in the application's data directory -->
<!--file>/data/data/com.example/files/elkaUsbTransfer.log</file>-->
<file>/data/data/com.example.agrc.elkausbtransfer/files/elkaUsbTransfer.txt</file>
<append>true</append>
<encoder>
<pattern>%%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="file"/>
</root>
/data/data/com.example.agrc.elkausbtransfer/files/elkausbtransfer.txt
真的
%%d{HH:mm:ss.SSS}[%thread]-5级别%logger{35}-%msg%n
如何在文本视图中查看日志文件“elkaUsbTransfer.txt”?我已经有了与LogFragment相关联的.xml文件。这是一个与查看我的日志和从同一文件写入我的日志相关的互斥问题吗?试试#adb shell或者您可以在调试模式下访问它adb shell不会访问内部存储上的文件,不确定调试模式会做什么。还有其他想法吗?