#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.