aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticFileBackend.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticFileBackend.java')
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticFileBackend.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticFileBackend.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticFileBackend.java
new file mode 100644
index 00000000..531c47bf
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticFileBackend.java
@@ -0,0 +1,56 @@
+package at.gv.egiz.pdfas.web.stats.impl;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.gv.egiz.pdfas.web.stats.StatisticBackend;
+import at.gv.egiz.pdfas.web.stats.StatisticEvent;
+
+public class StatisticFileBackend implements StatisticBackend {
+
+ public static final String NAME = "StatisticFileBackend";
+
+ public static final String STATISTIC_LOGGER = "at.gv.egiz.pdfas.web.statistics";
+
+ private static final Logger technical_logger = LoggerFactory
+ .getLogger(StatisticFileBackend.class);
+ private static final Logger statistic_logger = LoggerFactory
+ .getLogger(STATISTIC_LOGGER);
+
+ private void addCSVValue(String value, StringBuilder sb) {
+ if (value != null) {
+ value = value.replace(';', ',');
+ sb.append(value);
+ }
+ sb.append(";");
+ }
+
+ private String getLogEntry(StatisticEvent statisticEvent) {
+ StringBuilder sb = new StringBuilder();
+ addCSVValue(String.valueOf(statisticEvent.getTimestamp()), sb);
+ addCSVValue(statisticEvent.getOperation().getName(), sb);
+ addCSVValue(statisticEvent.getDevice(), sb);
+ addCSVValue(statisticEvent.getProfileId(), sb);
+ addCSVValue(String.valueOf(statisticEvent.getFilesize()), sb);
+ addCSVValue(statisticEvent.getUserAgent(), sb);
+ addCSVValue(statisticEvent.getStatus().getName(), sb);
+ addCSVValue((statisticEvent.getException() != null) ? statisticEvent
+ .getException().getMessage() : null, sb);
+ addCSVValue(String.valueOf(statisticEvent.getErrorCode()), sb);
+ addCSVValue(String.valueOf(statisticEvent.getDuration()), sb);
+ return sb.toString();
+ }
+
+ @Override
+ public void storeEvent(StatisticEvent statisticEvent) {
+ String entry = getLogEntry(statisticEvent);
+ technical_logger.trace("Stat log entry: {}", entry);
+ statistic_logger.info("{}", entry);
+ }
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+}