LogcatThread.java :  » Log » logcatudp » sk » madzik » android » logcatudp » Android Open Source

Android Open Source » Log » logcatudp 
logcatudp » sk » madzik » android » logcatudp » LogcatThread.java
package sk.madzik.android.logcatudp;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

import android.util.Log;
import sk.madzik.android.logcatudp.LogcatUdpService.Config;

public class LogcatThread extends Thread {
  private static final String TAG = "LogcatThread";
  private DatagramSocket mSocket = null;
  private Config mConfig = null;

  LogcatThread( DatagramSocket socket, Config config ) {
    Log.d( TAG, "Thread constructed." );
    if ( socket == null || config == null ) {
      throw new NullPointerException();
    }
    mSocket = socket;
    mConfig = config;
  }

  public void run() {
    Log.d(TAG, "started");
    try {
      Process process = Runtime.getRuntime().exec( "logcat" );
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
      String logLine;
      while ( (logLine = bufferedReader.readLine()) != null ) {
        String sendingLine = "";
        if ( mConfig.mSendIds ) {
          sendingLine = mConfig.mDevId + ": ";
        }
        sendingLine += logLine + System.getProperty("line.separator");
        DatagramPacket packet = new DatagramPacket(sendingLine.getBytes(), sendingLine.length(),
            InetAddress.getByName(mConfig.mDestServer), mConfig.mDestPort);
        mSocket.send(packet);
        if ( isInterrupted() ) {
          Log.d( TAG, "interupted." );
          break;
        }
      }
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      Log.d( TAG, "stopped." );
    }
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.