Вывод logcat в файл и промывочный буфер без пропуска каких-либо журналов

#android #adb #logcat

#Android #adb #logcat

Вопрос:

Возможно ли вывести logcat в файл после заполнения буфера, а затем очистить буфер, не пропуская никаких сообщений журнала?

Я знаю, что logcat -d выведет и закроет, а -c очистит все текущие журналы, но это не кажется идеальным.

Это, по-видимому, потенциально может быть условием гонки, когда в logcat отправляется больше журналов между записью файла и очисткой буфера.

Комментарии:

1. добавьте немного кода, не могу понять, что я делаю.

2. Я не уверен, чего вы пытаетесь достичь, если вам нужна альтернатива ведению журнала Android, ознакомьтесь github.com/JakeWharton/timber . Это отличная библиотека, и вы можете выводить сообщения журнала в любую вещь (файл в вашем случае), используя эту библиотеку

3. Моя цель — постоянно запускать logcat как службу на устройстве, которая будет выводиться в файл, когда буфер заполнен, и очищать буфер без ввода каких-либо сообщений журнала в буфер между выводом и очисткой файла.

Ответ №1:

Вероятно, это сработает:

 logcat -d -f /out.txt amp;amp; logcat -c 
  

Комментарии:

1. Я только что попробовал, и это работает. Поместите его в цикл bash, и он должен постоянно выводить logcat в out.txt а затем очистите буфер перед следующим выводом. -d сообщит ему, что он выводится, а затем останавливается. -f сообщает ему о сбросе в файл. amp;amp; — это способ выполнения двух последовательных операторов в одной строке. -f очищает буфер logcat.