Java 将设备登录到文件

Java 将设备登录到文件,java,android,logging,Java,Android,Logging,如何将设备上的日志重定向到文件 我的应用程序挂在设备上,但在emulator上运行得很好-我想看到在没有sdk及其工具的情况下登录我的设备。看看。我正在使用从android market免费下载的应用程序aLogCat 工作非常好。-JavaME和Android的日志框架,灵感来自Log4j (c) 约翰·卡尔森 我发现了Logcat的优秀特性。它可以使用简单的命令参数“-f”将输出重定向到文件本身。 要使用它,您可以在应用程序中编写Logcat包装器。显然是我做的:) 为了在android上使

如何将设备上的日志重定向到文件


我的应用程序挂在设备上,但在emulator上运行得很好-我想看到在没有sdk及其工具的情况下登录我的设备。

看看。

我正在使用从android market免费下载的应用程序aLogCat

工作非常好。

-JavaME和Android的日志框架,灵感来自Log4j

(c)

约翰·卡尔森


我发现了Logcat的优秀特性。它可以使用简单的命令参数“-f”将输出重定向到文件本身。 要使用它,您可以在应用程序中编写Logcat包装器。显然是我做的:)

为了在android上使用logcat,我编写了以下代码:

Process proc = null;
try {
  proc = Runtime.getRuntime().exec(new String[] { "logcat", <!parametes_here!> });
  mReader = new BufferedReader(new InputStreamReader(proc.getInputStream()), 1024);
  String line;
  while ((line = mReader.readLine()) != null) {
   if (line.length() == 0) {
    continue;
   }
  mHandler.sendMessage(mHandler.obtainMessage(Logcat.MSG_READ_LINE, line));
 }
} catch (IOException e) {
 Log.e(TAG, "Cannot start process", e);
} finally {
  if (mReader != null)
  try {
    mReader.close();
  } catch (IOException e) {
    Log.e(TAG, "Cannot close stream", e);
 }
}
processproc=null;
试一试{
proc=Runtime.getRuntime().exec(新字符串[]{“logcat”,});
mReader=newbufferedreader(newInputStreamReader(proc.getInputStream()),1024);
弦线;
而((line=mReader.readLine())!=null){
if(line.length()==0){
继续;
}
mHandler.sendMessage(mHandler.ActainMessage(Logcat.MSG_READ_LINE,LINE));
}
}捕获(IOE异常){
Log.e(标记“无法启动进程”,e);
}最后{
if(mReader!=null)
试一试{
mReader.close();
}捕获(IOE异常){
Log.e(标记“无法关闭流”,e);
}
}

日志框架(如log4j)已经提供了日志记录到文件等功能。使用它可以记录到旋转日志文件和logcat。另见