휴대 전화에서 애플리케이션 로그를 읽고 파일에 기록하고 싶습니다. 다음과 같이 일식에서 내 로그를보고 확인할 수 있습니다.
12-26 11:53:07.456: I/power(188): *** set_screen_state 0
12-26 11:53:07.496: D/Sensors(188): Enable G-Sensor: en = 0
12-26 11:53:07.506: D/Sensors(188): mEnabled = 0x0
12-26 11:53:07.506: D/Sensors(188): /data/misc/AccPrmsF.ini does not exist
12-26 11:53:07.596: D/AccelerometerListener(340): enable(false)
12-26 11:53:07.686: V/TransportControlView(188): Create TCV com.android.internal.widget.TransportControlView@412f16a8
12-26 11:53:07.957: D/dalvikvm(188): GC_CONCURRENT freed 1852K, 52% free 11229K/23367K, paused 15ms+23ms
12-26 11:53:07.967: D/SurfaceFlinger(125): About to give-up screen, flinger = 0x15a1918
12-26 11:53:08.187: I/ActivityManager(188): Start proc com.google.android.gsf.login for service com.google.android.gsf.login/com.google.android.gsf.loginservice.GoogleLoginService: pid=25736 uid=10005 gids={3003, 1015, 1007, 2001, 3006}
12-26 11:53:08.207: D/PhoneStatusBar(27013): disable: < expand icons alerts ticker system_info back home RECENT* clock >
12-26 11:53:08.277: W/IInputConnectionWrapper(188): showStatusIcon on inactive InputConnection
12-26 11:53:08.297: D/PhoneStatusBar(27013): disable: < expand icons alerts ticker system_info BACK* HOME* RECENT CLOCK* >
12-26 11:54:16.604: W/ThrottleService(188): unable to find stats for iface rmnet0
12-26 12:00:24.983: D/dalvikvm(188): GC_EXPLICIT freed 1532K, 51% free 11674K/23367K, paused 6ms+22ms
하지만 이걸 제 휴대폰으로 읽고 싶어요. 어떻게 할 수 있습니까?!
애플리케이션에서 logcat에 로그를 작성하는 것은 매우 쉽습니다. 로그 읽기는 일반적으로 버그보고 목적으로 사용됩니다.
다음 코드는 로그를 읽고 파일에 씁니다.
public class LogTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder log = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
String logFilePath = Environment.getExternalStorageDirectory() + File.separator + "LogTest.txt";
File logFile = new File(logFilePath);
if (!logFile.exists())
logFile.createNewFile();
FileOutputStream outStream = new FileOutputStream(logFile, true);
byte[] buffer = log.toString().getBytes();
outStream.write(buffer);
outStream.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
또한 로그를 읽고 외부 저장소에 파일을 쓰기위한 두 가지 권한이 필요합니다.
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
logcat 명령 문자열에 더 많은 매개 변수를 추가 할 수 있습니다 . Android 개발자의 추가 정보 .
로그를 자신에게 보내는 버그보고 기능을 구현할 때 많은 애플리케이션이 개인 정보를 logcat에 출력한다는 사실을 잊지 마십시오. 따라서 이에 대한 정책이 반드시 필요합니다.
이 게시물이 유용하기를 바랍니다 ;-)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다