#logging #codenameone
#ведение журнала #codenameone
Вопрос:
Я только что прочитал Api класса Log
и попробовал его, но у меня ничего не получилось. Я попробовал следующий код с эмулятором:
String appHomePath = FileSystemStorage.getInstance().getAppHomePath();
String fileName = (appHomePath "codenameOne.log");
Log.getInstance().setFileURL(fileName);
Log.p("This is a stupid log message!");
Log.getInstance().sendLog();
appHomePath получает значение "file://home/"
, поэтому URL-адрес, установленный для файлов журнала, равен "file://home/codenameOne.log"
После этого ничего не произошло. Куда отправляется содержимое журнала? В JavaDoc есть подсказка, что он отправляется в облако. Какое облако? Возможно ли, что приложение не имеет прав на запись в каталог «/ home»?
Затем я попытался отправить его по электронной почте:
Message m = new Message("Body of message");
m.getAttachments().put(Log.getInstance().getFileURL(), "text/plain");
Display.getInstance().sendMessage(new String[]{"dummy@address.de"}, "Log file", m);
Это приводит к открытию окна почтового клиента с правильным адресом и основным текстом, но при этом файл журнала вообще не прикреплен. Может быть, потому, что файла журнала не существует?
Есть предложения? Мне это нужно.
Ответ №1:
Log.sendLog
это профессиональная функция. Он конфликтует с такими функциями, как setFileURL
.
Подход с вложением должен работать, я не уверен, что у вас там не получается.
Комментарии:
1. После установки приложения на мой смартфон оно работало правильно, что означает, что файл журнала прикреплен к почте. Отправка файлов журнала по электронной почте не работает из эмулятора, использующего Thunderbird в качестве почтового клиента. Я не знаю, является ли причиной почтовый клиент или эмулятор. Должен ли он работать с emualtor и другими почтовыми клиентами?
2. Симулятор просто использует mailto: URL, поскольку эта функциональность недоступна в JavaSE