Development Tips

Tips: Jak włączyć logowanie zapytań w ORMLite

ORMLite to świetne narzędzie do mapowania obiektowo-relacyjnego, ale czasem przydałoby się widzieć, na jakie zapytania mapują się nasze akcje.
Domyślnie ORMLite loguje niewiele:


I/TableUtils( 254): creating table 'simpledata'
I/TableUtils( 254): creating index 'simpledata_string_idx' for table
'simpledata
I/TableUtils( 254): executed create table statement changed 1 rows:
CREATE TABLE `simpledata` (`date` VARCHAR, `id` INTEGER PRIMARY
KEY AUTOINCREMENT , `even` SMALLINT )
I/TableUtils( 254): executed create table statement changed 1 rows:
CREATE INDEX `simpledata_string_idx` ON `simpledata` ( `string` )

Wystarczy jednak ustawić większy poziom logowania na urządzeniu/emulatorze, aby zobaczyć dużo więcej szczegółów zapytań:


adb shell setprop log.tag.StatementExecutor VERBOSE
adb shell setprop log.tag.BaseMappedStatement VERBOSE
adb shell setprop log.tag.MappedCreate VERBOSE

Powyższe komendy ustawiają poziom logowania VERBOSE dla wybranych klas odpowiedzialnych za budowanie i wykonywanie zapytań. Działa to tylko na czas uruchomienia danego urządzenia, wieć po zmianie urządzenia lub restarcie, trzeba tą operację powtórzyć.

Wynik:


D/BaseMappedStatement(465): create object using 'INSERT INTO `simpledata`
(`date` ,`string` ,`millis` ,`even` ) VALUES (?,?,?,?)' and 4 args,
changed 1 rows
D/BaseMappedStatement(465): assigned id '9' from keyholder to 'id' in
SimpleData object

Źródło