public final class Logger { public static final String DISPATCHER_REPORT_URI = App.getDispatcherUri() + "/vidLog/report"; private static final int CAPACITY = 10; private static final String APPLICATION_LOG_TAG = "YourApp"; private static List<String> logs = new Vector<String>(CAPACITY); public synchronized static void r(String msg) { if (logs.size() + 1 > CAPACITY) { flushRemote(); } logs.add(buildLog(msg)); } public synchronized static void flushRemote() { final String formattedLogs = collectAndFormatLogs(); Runnable sendLogs = new Runnable() { @Override public void run() { HttpHelper.doPostRequest(YOUR_SERVER_URI, "APP_LOG", formattedLogs); } }; new Thread(sendLogs).start(); logs.clear(); } private static String collectAndFormatLogs() { String logsFormatted = ""; for (String log : logs) { logsFormatted += log + "\n"; } return logsFormatted; } private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS"); private static String buildLog(String msg) { return sdf.format(new Date()) + " REMOTE " + APPLICATION_LOG_TAG + " " + msg; } } //Usage Logger.r("first message"); Logger.r("second message"); //When CAPACITY is exceeded logs will be flushed automatically. Logger.flushRemote();
Friday, June 6, 2014
Android remote logger - send logs to server
I want to show you simple implementation of remote logger for Android. This can be used for sendings logs from your app to
server (backend).
Subscribe to:
Post Comments (Atom)
Could you please tell me what is "HttpHelper.doPostRequest", thanks.
ReplyDeleteIt just do http post request, you can add your own http client implementation there.
ReplyDelete