Я прошу прощения, если я неправильно понимаю ваши цели, но, возможно, вы могли бы использовать java.util.logging API вместо использования Logcat или механизма регистрации Android.
Как регистрация AndroidAPI, java.util.logging API позволяет легко регистрировать сообщения на различных уровнях, таких как FINE, FINER, WARN, SEVERE и т. Д.
Но стандартный API журналирования имеет дополнительныепреимущества тоже.Например, вы можете легко создать файл журнала , используя FileHandler .На самом деле, FileHandler имеет встроенный механизм ротации журналов, поэтому вам не нужно беспокоиться (так много) об очистке файлов журналов.Вы также можете создать иерархию Logger s;так, например, если у вас есть два Logger s, com.example.foo и com.example.foo.bar , изменив уровень ведения журналаПервый также изменит уровень регистрации последнего.Это будет даже работать, если два Logger созданы в разных классах!Кроме того, вы изменяете поведение ведения журнала во время выполнения, указывая файл конфигурации ведения журнала.Наконец, вы можете настроить формат журнала, внедрив свой собственный Formatter (или просто использовать SimpleFormatter , чтобы избежать формата XML по умолчанию).
Чтобы использоватьстандартное API ведения журнала, вы можете попробовать что-то вроде этого:
// Logger logger is an instance variable
// FileHandler logHandler is an instance variable
try {
String logDirectory =
Environment.getExternalStorageDirectory() + "/log_directory";
// the %g is the number of the current log in the rotation
String logFileName = logDirectory + "/logfile_base_name_%g.log";
// ...
// make sure that the log directory exists, or the next command will fail
//
// create a log file at the specified location that is capped 100kB. Keep up to 5 logs.
logHandler = new FileHandler(logFileName, 100 * 1024, 5);
// use a text-based format instead of the default XML-based format
logHandler.setFormatter(new SimpleFormatter());
// get the actual Logger
logger = Logger.getLogger("com.example.foo");
// Log to the file by associating the FileHandler with the log
logger.addHandler(logHandler);
}
catch (IOException ioe) {
// do something wise
}
// examples of using the logger
logger.finest("This message is only logged at the finest level (lowest/most-verbose level)");
logger.config("This is an config-level message (middle level)");
logger.severe("This is a severe-level message (highest/least-verbose level)");
Механизм ведения журнала Android, безусловно, прост и удобен.Это не очень настраиваемо, хотя, и фильтрация журнала должна быть сделана с тегами, которые могут легко стать громоздкими.Используя API java.uitl.logging , вы можете избежать работы с множеством тегов, но при этом легко ограничить файл журнала конкретными частями своего приложения, получить больший контроль над расположением и внешним видом журнала.и даже настроить поведение при ведении журнала во время выполнения.