aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2018-09-14 14:33:49 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2018-09-14 14:33:49 +1200
commitb10824bb5769c4abb93e3451673b88efdfb9d467 (patch)
treec4d04ed2f19d5758a75b702467dbc051c5d0511c
parente331573c0df7467fd36ae3eba3c259ed9b1d9253 (diff)
downloadtrackermap-server-b10824bb5769c4abb93e3451673b88efdfb9d467.tar.gz
trackermap-server-b10824bb5769c4abb93e3451673b88efdfb9d467.tar.bz2
trackermap-server-b10824bb5769c4abb93e3451673b88efdfb9d467.zip
Log using slf4j and java logging
-rw-r--r--debug.xml1
-rw-r--r--pom.xml13
-rw-r--r--src/org/traccar/BasePipelineFactory.java9
-rw-r--r--src/org/traccar/BaseProtocol.java8
-rw-r--r--src/org/traccar/BaseProtocolDecoder.java15
-rw-r--r--src/org/traccar/BaseProtocolEncoder.java7
-rw-r--r--src/org/traccar/Context.java12
-rw-r--r--src/org/traccar/DefaultDataHandler.java7
-rw-r--r--src/org/traccar/FilterHandler.java7
-rw-r--r--src/org/traccar/GeocoderHandler.java7
-rw-r--r--src/org/traccar/GeolocationHandler.java7
-rw-r--r--src/org/traccar/Main.java47
-rw-r--r--src/org/traccar/MainEventHandler.java19
-rw-r--r--src/org/traccar/ServerManager.java7
-rw-r--r--src/org/traccar/WebDataHandler.java7
-rw-r--r--src/org/traccar/api/AsyncSocket.java7
-rw-r--r--src/org/traccar/api/SecurityRequestFilter.java7
-rw-r--r--src/org/traccar/database/BaseObjectManager.java7
-rw-r--r--src/org/traccar/database/CommandsManager.java7
-rw-r--r--src/org/traccar/database/ConnectionManager.java7
-rw-r--r--src/org/traccar/database/DataManager.java14
-rw-r--r--src/org/traccar/database/DeviceManager.java9
-rw-r--r--src/org/traccar/database/ExtendedObjectManager.java7
-rw-r--r--src/org/traccar/database/GroupsManager.java7
-rw-r--r--src/org/traccar/database/LdapProvider.java11
-rw-r--r--src/org/traccar/database/MediaManager.java7
-rw-r--r--src/org/traccar/database/NotificationManager.java9
-rw-r--r--src/org/traccar/database/PermissionsManager.java9
-rw-r--r--src/org/traccar/database/QueryBuilder.java23
-rw-r--r--src/org/traccar/database/SimpleObjectManager.java7
-rw-r--r--src/org/traccar/database/StatisticsManager.java9
-rw-r--r--src/org/traccar/geocoder/JsonGeocoder.java9
-rw-r--r--src/org/traccar/helper/Log.java189
-rw-r--r--src/org/traccar/helper/LogAction.java19
-rw-r--r--src/org/traccar/helper/PatternUtil.java7
-rw-r--r--src/org/traccar/model/Server.java4
-rw-r--r--src/org/traccar/notification/NotificationFormatter.java7
-rw-r--r--src/org/traccar/notification/NotificatorManager.java9
-rw-r--r--src/org/traccar/notificators/Notificator.java7
-rw-r--r--src/org/traccar/notificators/NotificatorMail.java7
-rw-r--r--src/org/traccar/notificators/NotificatorNull.java10
-rw-r--r--src/org/traccar/processing/ComputedAttributesHandler.java11
-rw-r--r--src/org/traccar/protocol/AdmProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/AplicomProtocolDecoder.java7
-rw-r--r--src/org/traccar/protocol/AstraProtocolDecoder.java7
-rw-r--r--src/org/traccar/protocol/AtrackProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/CarcellProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/CastelProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/CellocatorFrameDecoder.java6
-rw-r--r--src/org/traccar/protocol/CellocatorProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/CityeasyProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/EelinkProtocolEncoder.java10
-rw-r--r--src/org/traccar/protocol/EnforaProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/EsealProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/GalileoProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/Gl200ProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/Gps103ProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/GranitProtocolEncoder.java29
-rw-r--r--src/org/traccar/protocol/GranitProtocolSmsEncoder.java2
-rw-r--r--src/org/traccar/protocol/Gt06ProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/H02ProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/HuabaoProtocolEncoder.java2
-rw-r--r--src/org/traccar/protocol/Jt600ProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/KhdProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/MeiligaoProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/MeitrackProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/MiniFinderProtocolEncoder.java2
-rw-r--r--src/org/traccar/protocol/Mta6ProtocolDecoder.java9
-rw-r--r--src/org/traccar/protocol/NavigilProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/NoranProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/PretraceProtocolEncoder.java2
-rw-r--r--src/org/traccar/protocol/Pt502ProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/RuptelaProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/SkypatrolProtocolDecoder.java7
-rw-r--r--src/org/traccar/protocol/SuntechProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/SviasProtocolEncoder.java5
-rw-r--r--src/org/traccar/protocol/T800xProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/TeltonikaProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/Tk103ProtocolEncoder.java3
-rw-r--r--src/org/traccar/protocol/TotemProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/WatchProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/WialonProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/WondexProtocolEncoder.java7
-rw-r--r--src/org/traccar/protocol/XexunProtocolEncoder.java6
-rw-r--r--src/org/traccar/protocol/XirgoProtocolEncoder.java6
-rw-r--r--src/org/traccar/smpp/ClientSmppSessionHandler.java13
-rw-r--r--src/org/traccar/smpp/EnquireLinkTask.java11
-rw-r--r--src/org/traccar/smpp/SmppClient.java15
-rw-r--r--src/org/traccar/web/ConsoleServlet.java7
-rw-r--r--src/org/traccar/web/CsvBuilder.java9
-rw-r--r--src/org/traccar/web/WebServer.java11
91 files changed, 503 insertions, 434 deletions
diff --git a/debug.xml b/debug.xml
index ed3520cfc..887558323 100644
--- a/debug.xml
+++ b/debug.xml
@@ -12,6 +12,7 @@
<entry key='geocoder.enable'>false</entry>
+ <entry key='logger.console'>true</entry>
<entry key='logger.file'>target/tracker-server.log</entry>
<entry key='database.driver'>org.h2.Driver</entry>
diff --git a/pom.xml b/pom.xml
index 27864a299..8d864cc66 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,11 +23,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.17</version>
- </dependency>
- <dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10</version>
@@ -75,7 +70,7 @@
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
+ <artifactId>slf4j-jdk14</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
@@ -132,6 +127,12 @@
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>3.6.2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
diff --git a/src/org/traccar/BasePipelineFactory.java b/src/org/traccar/BasePipelineFactory.java
index 6269fb8cc..4cf5d7a98 100644
--- a/src/org/traccar/BasePipelineFactory.java
+++ b/src/org/traccar/BasePipelineFactory.java
@@ -29,6 +29,8 @@ import io.netty.channel.ChannelPromise;
import io.netty.channel.socket.DatagramChannel;
import io.netty.channel.socket.DatagramPacket;
import io.netty.handler.timeout.IdleStateHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.events.CommandResultEventHandler;
import org.traccar.events.DriverEventHandler;
import org.traccar.events.FuelDropEventHandler;
@@ -38,7 +40,6 @@ import org.traccar.events.MaintenanceEventHandler;
import org.traccar.events.MotionEventHandler;
import org.traccar.events.OverspeedEventHandler;
import org.traccar.events.AlertEventHandler;
-import org.traccar.helper.Log;
import org.traccar.processing.ComputedAttributesHandler;
import org.traccar.processing.CopyAttributesHandler;
@@ -46,6 +47,8 @@ import java.net.InetSocketAddress;
public abstract class BasePipelineFactory extends ChannelInitializer<Channel> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(BasePipelineFactory.class);
+
private final TrackerServer server;
private int timeout;
@@ -155,7 +158,7 @@ public abstract class BasePipelineFactory extends ChannelInitializer<Channel> {
message.append(" HEX: ");
message.append(ByteBufUtil.hexDump((ByteBuf) networkMessage.getMessage()));
- Log.debug(message.toString());
+ LOGGER.debug(message.toString());
}
}
@@ -352,7 +355,7 @@ public abstract class BasePipelineFactory extends ChannelInitializer<Channel> {
try {
pipeline.addLast("extraHandler." + i, (ChannelHandler) Class.forName(handlers[i]).newInstance());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/BaseProtocol.java b/src/org/traccar/BaseProtocol.java
index 62ee99946..4e5df329c 100644
--- a/src/org/traccar/BaseProtocol.java
+++ b/src/org/traccar/BaseProtocol.java
@@ -95,8 +95,12 @@ public abstract class BaseProtocol implements Protocol {
if (command.getType().equals(Command.TYPE_CUSTOM)) {
Context.getSmsManager().sendMessageSync(destAddress, command.getString(Command.KEY_DATA), true);
} else if (supportedTextCommands.contains(command.getType()) && textCommandEncoder != null) {
- Context.getSmsManager().sendMessageSync(destAddress,
- (String) textCommandEncoder.encodeCommand(command), true);
+ String encodedCommand = (String) textCommandEncoder.encodeCommand(command);
+ if (encodedCommand != null) {
+ Context.getSmsManager().sendMessageSync(destAddress, encodedCommand, true);
+ } else {
+ throw new RuntimeException("Failed to encode command");
+ }
} else {
throw new RuntimeException(
"Command " + command.getType() + " is not supported in protocol " + getName());
diff --git a/src/org/traccar/BaseProtocolDecoder.java b/src/org/traccar/BaseProtocolDecoder.java
index d9ab60e3a..e940d96c4 100644
--- a/src/org/traccar/BaseProtocolDecoder.java
+++ b/src/org/traccar/BaseProtocolDecoder.java
@@ -17,7 +17,8 @@ package org.traccar;
import io.netty.channel.Channel;
import io.netty.channel.socket.DatagramChannel;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.helper.UnitsConverter;
import org.traccar.model.Device;
import org.traccar.model.Position;
@@ -33,6 +34,8 @@ import java.sql.SQLException;
public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(BaseProtocolDecoder.class);
+
private final Protocol protocol;
public long addUnknownDevice(String uniqueId) {
@@ -49,7 +52,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
try {
Context.getDeviceManager().addItem(device);
- Log.info("Automatically registered device " + uniqueId);
+ LOGGER.info("Automatically registered device " + uniqueId);
if (defaultGroupId != 0) {
Context.getPermissionsManager().refreshDeviceAndGroupPermissions();
@@ -58,7 +61,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
return device.getId();
} catch (SQLException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
return 0;
}
}
@@ -107,7 +110,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
int timeZoneOffset = Context.getConfig().getInteger(getProtocolName() + ".timezone", 0);
if (timeZoneOffset != 0) {
result.setRawOffset(timeZoneOffset * 1000);
- Log.warning("Config parameter " + getProtocolName() + ".timezone is deprecated");
+ LOGGER.warn("Config parameter " + getProtocolName() + ".timezone is deprecated");
}
}
return result;
@@ -131,7 +134,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
}
}
} catch (Exception e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
if (deviceId == 0 && Context.getConfig().getBoolean("database.registerUnknown")) {
return addUnknownDevice(uniqueIds[0]);
@@ -151,7 +154,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
if (remoteAddress != null) {
message.append(" (").append(((InetSocketAddress) remoteAddress).getHostString()).append(")");
}
- Log.warning(message.toString());
+ LOGGER.warn(message.toString());
}
return 0;
}
diff --git a/src/org/traccar/BaseProtocolEncoder.java b/src/org/traccar/BaseProtocolEncoder.java
index ed71b5551..d7625e4b8 100644
--- a/src/org/traccar/BaseProtocolEncoder.java
+++ b/src/org/traccar/BaseProtocolEncoder.java
@@ -19,12 +19,15 @@ import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelOutboundHandlerAdapter;
import io.netty.channel.ChannelPromise;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.model.Command;
import org.traccar.model.Device;
public abstract class BaseProtocolEncoder extends ChannelOutboundHandlerAdapter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(BaseProtocolEncoder.class);
+
protected String getUniqueId(long deviceId) {
return Context.getIdentityManager().getById(deviceId).getUniqueId();
}
@@ -60,7 +63,7 @@ public abstract class BaseProtocolEncoder extends ChannelOutboundHandlerAdapter
} else {
s.append("not sent");
}
- Log.info(s.toString());
+ LOGGER.info(s.toString());
ctx.write(new NetworkMessage(encodedCommand, networkMessage.getRemoteAddress()), promise);
diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java
index d607baf3e..9a8bb97a9 100644
--- a/src/org/traccar/Context.java
+++ b/src/org/traccar/Context.java
@@ -27,6 +27,8 @@ import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.apache.velocity.app.VelocityEngine;
import org.eclipse.jetty.util.URIUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.database.CalendarManager;
import org.traccar.database.CommandsManager;
import org.traccar.database.AttributesManager;
@@ -87,9 +89,17 @@ import javax.ws.rs.client.ClientBuilder;
public final class Context {
+ private static final Logger LOGGER = LoggerFactory.getLogger(Context.class);
+
+ public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
+
private Context() {
}
+ public static String getAppVersion() {
+ return Context.class.getPackage().getImplementationVersion();
+ }
+
private static Config config;
public static Config getConfig() {
@@ -398,7 +408,7 @@ public final class Context {
try {
smsManager = (SmsManager) Class.forName(smsManagerClass).newInstance();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
- Log.warning("Error loading SMS Manager class : " + smsManagerClass, e);
+ LOGGER.warn("Error loading SMS Manager class : " + smsManagerClass, e);
}
}
diff --git a/src/org/traccar/DefaultDataHandler.java b/src/org/traccar/DefaultDataHandler.java
index 1ac3efc77..f62dca681 100644
--- a/src/org/traccar/DefaultDataHandler.java
+++ b/src/org/traccar/DefaultDataHandler.java
@@ -15,18 +15,21 @@
*/
package org.traccar;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.model.Position;
public class DefaultDataHandler extends BaseDataHandler {
+ private static final Logger LOGGER = LoggerFactory.getLogger(DefaultDataHandler.class);
+
@Override
protected Position handlePosition(Position position) {
try {
Context.getDataManager().addObject(position);
} catch (Exception error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
return position;
diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java
index 7ad68f386..b127e190a 100644
--- a/src/org/traccar/FilterHandler.java
+++ b/src/org/traccar/FilterHandler.java
@@ -16,13 +16,16 @@
package org.traccar;
import io.netty.channel.ChannelHandler;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.helper.UnitsConverter;
import org.traccar.model.Position;
@ChannelHandler.Sharable
public class FilterHandler extends BaseDataHandler {
+ private static final Logger LOGGER = LoggerFactory.getLogger(FilterHandler.class);
+
private boolean filterInvalid;
private boolean filterZero;
private boolean filterDuplicate;
@@ -236,7 +239,7 @@ public class FilterHandler extends BaseDataHandler {
message.append("filters from device: ");
message.append(Context.getIdentityManager().getById(position.getDeviceId()).getUniqueId());
- Log.info(message.toString());
+ LOGGER.info(message.toString());
return true;
}
diff --git a/src/org/traccar/GeocoderHandler.java b/src/org/traccar/GeocoderHandler.java
index 0f3ba4731..72f164948 100644
--- a/src/org/traccar/GeocoderHandler.java
+++ b/src/org/traccar/GeocoderHandler.java
@@ -18,13 +18,16 @@ package org.traccar;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.geocoder.Geocoder;
-import org.traccar.helper.Log;
import org.traccar.model.Position;
@ChannelHandler.Sharable
public class GeocoderHandler extends ChannelInboundHandlerAdapter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(GeocoderHandler.class);
+
private final Geocoder geocoder;
private final boolean processInvalidPositions;
private final int geocoderReuseDistance;
@@ -63,7 +66,7 @@ public class GeocoderHandler extends ChannelInboundHandlerAdapter {
@Override
public void onFailure(Throwable e) {
- Log.warning("Geocoding failed", e);
+ LOGGER.warn("Geocoding failed", e);
ctx.fireChannelRead(position);
}
});
diff --git a/src/org/traccar/GeolocationHandler.java b/src/org/traccar/GeolocationHandler.java
index 0c204dc0b..27043e94e 100644
--- a/src/org/traccar/GeolocationHandler.java
+++ b/src/org/traccar/GeolocationHandler.java
@@ -18,13 +18,16 @@ package org.traccar;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.geolocation.GeolocationProvider;
import org.traccar.model.Position;
@ChannelHandler.Sharable
public class GeolocationHandler extends ChannelInboundHandlerAdapter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(GeolocationHandler.class);
+
private final GeolocationProvider geolocationProvider;
private final boolean processInvalidPositions;
@@ -60,7 +63,7 @@ public class GeolocationHandler extends ChannelInboundHandlerAdapter {
@Override
public void onFailure(Throwable e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
ctx.fireChannelRead(position);
}
});
diff --git a/src/org/traccar/Main.java b/src/org/traccar/Main.java
index 1e2db2693..fd1f07dca 100644
--- a/src/org/traccar/Main.java
+++ b/src/org/traccar/Main.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 - 2015 Anton Tananaev (anton@traccar.org)
+ * Copyright 2012 - 2018 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,8 +15,14 @@
*/
package org.traccar;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.OperatingSystemMXBean;
+import java.lang.management.RuntimeMXBean;
+import java.nio.charset.Charset;
import java.sql.SQLException;
import java.util.Timer;
import java.util.TimerTask;
@@ -24,16 +30,47 @@ import java.util.Locale;
public final class Main {
+ private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
+
private static final long CLEAN_PERIOD = 24 * 60 * 60 * 1000;
private Main() {
}
+ public static void logSystemInfo() {
+ try {
+ OperatingSystemMXBean operatingSystemBean = ManagementFactory.getOperatingSystemMXBean();
+ LOGGER.info("Operating system"
+ + " name: " + operatingSystemBean.getName()
+ + " version: " + operatingSystemBean.getVersion()
+ + " architecture: " + operatingSystemBean.getArch());
+
+ RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();
+ LOGGER.info("Java runtime"
+ + " name: " + runtimeBean.getVmName()
+ + " vendor: " + runtimeBean.getVmVendor()
+ + " version: " + runtimeBean.getVmVersion());
+
+ MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
+ LOGGER.info("Memory limit"
+ + " heap: " + memoryBean.getHeapMemoryUsage().getMax() / (1024 * 1024) + "mb"
+ + " non-heap: " + memoryBean.getNonHeapMemoryUsage().getMax() / (1024 * 1024) + "mb");
+
+ LOGGER.info("Character encoding: "
+ + System.getProperty("file.encoding") + " charset: " + Charset.defaultCharset());
+
+ } catch (Exception error) {
+ LOGGER.warn("Failed to get system info");
+ }
+ }
+
public static void main(String[] args) throws Exception {
Locale.setDefault(Locale.ENGLISH);
Context.init(args);
- Log.info("Starting server...");
+ logSystemInfo();
+ LOGGER.info("Version: " + Context.getAppVersion());
+ LOGGER.info("Starting server...");
Context.getServerManager().start();
if (Context.getWebServer() != null) {
@@ -46,7 +83,7 @@ public final class Main {
try {
Context.getDataManager().clearHistory();
} catch (SQLException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}, 0, CLEAN_PERIOD);
@@ -54,7 +91,7 @@ public final class Main {
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
- Log.info("Shutting down server...");
+ LOGGER.info("Shutting down server...");
if (Context.getWebServer() != null) {
Context.getWebServer().stop();
diff --git a/src/org/traccar/MainEventHandler.java b/src/org/traccar/MainEventHandler.java
index 49694aaff..b24edf28e 100644
--- a/src/org/traccar/MainEventHandler.java
+++ b/src/org/traccar/MainEventHandler.java
@@ -20,7 +20,8 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.channel.socket.DatagramChannel;
import io.netty.handler.timeout.IdleStateEvent;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.model.Position;
import java.sql.SQLException;
@@ -31,6 +32,8 @@ import java.util.Set;
public class MainEventHandler extends ChannelInboundHandlerAdapter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(GeocoderHandler.class);
+
private final Set<String> connectionlessProtocols = new HashSet<>();
public MainEventHandler() {
@@ -48,7 +51,7 @@ public class MainEventHandler extends ChannelInboundHandlerAdapter {
try {
Context.getDeviceManager().updateLatestPosition(position);
} catch (SQLException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
String uniqueId = Context.getIdentityManager().getById(position.getDeviceId()).getUniqueId();
@@ -58,7 +61,7 @@ public class MainEventHandler extends ChannelInboundHandlerAdapter {
s.append(formatChannel(ctx.channel())).append(" ");
s.append("id: ").append(uniqueId);
s.append(", time: ").append(
- new SimpleDateFormat(Log.DATE_FORMAT).format(position.getFixTime()));
+ new SimpleDateFormat(Context.DATE_FORMAT).format(position.getFixTime()));
s.append(", lat: ").append(String.format("%.5f", position.getLatitude()));
s.append(", lon: ").append(String.format("%.5f", position.getLongitude()));
if (position.getSpeed() > 0) {
@@ -72,7 +75,7 @@ public class MainEventHandler extends ChannelInboundHandlerAdapter {
if (cmdResult != null) {
s.append(", result: ").append(cmdResult);
}
- Log.info(s.toString());
+ LOGGER.info(s.toString());
Context.getStatisticsManager().registerMessageStored(position.getDeviceId());
}
@@ -84,12 +87,12 @@ public class MainEventHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
- Log.info(formatChannel(ctx.channel()) + " connected");
+ LOGGER.info(formatChannel(ctx.channel()) + " connected");
}
@Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
- Log.info(formatChannel(ctx.channel()) + " disconnected");
+ LOGGER.info(formatChannel(ctx.channel()) + " disconnected");
closeChannel(ctx.channel());
BaseProtocolDecoder protocolDecoder = (BaseProtocolDecoder) ctx.pipeline().get("objectDecoder");
@@ -101,14 +104,14 @@ public class MainEventHandler extends ChannelInboundHandlerAdapter {
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
- Log.warning(formatChannel(ctx.channel()) + " error", cause);
+ LOGGER.warn(formatChannel(ctx.channel()) + " error", cause);
closeChannel(ctx.channel());
}
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt instanceof IdleStateEvent) {
- Log.info(formatChannel(ctx.channel()) + " timed out");
+ LOGGER.info(formatChannel(ctx.channel()) + " timed out");
closeChannel(ctx.channel());
}
}
diff --git a/src/org/traccar/ServerManager.java b/src/org/traccar/ServerManager.java
index a8da6d57e..a67f71be2 100644
--- a/src/org/traccar/ServerManager.java
+++ b/src/org/traccar/ServerManager.java
@@ -15,7 +15,8 @@
*/
package org.traccar;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.File;
import java.net.BindException;
@@ -33,6 +34,8 @@ import java.util.jar.JarFile;
public class ServerManager {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ServerManager.class);
+
private final List<TrackerServer> serverList = new LinkedList<>();
private final Map<String, BaseProtocol> protocolList = new ConcurrentHashMap<>();
@@ -84,7 +87,7 @@ public class ServerManager {
try {
server.start();
} catch (BindException e) {
- Log.warning("One of the protocols is disabled due to port conflict");
+ LOGGER.warn("One of the protocols is disabled due to port conflict");
}
}
}
diff --git a/src/org/traccar/WebDataHandler.java b/src/org/traccar/WebDataHandler.java
index 65b272df4..a8b4ab94a 100644
--- a/src/org/traccar/WebDataHandler.java
+++ b/src/org/traccar/WebDataHandler.java
@@ -16,8 +16,9 @@
package org.traccar;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Device;
import org.traccar.model.Position;
@@ -34,6 +35,8 @@ import java.util.TimeZone;
public class WebDataHandler extends BaseDataHandler {
+ private static final Logger LOGGER = LoggerFactory.getLogger(WebDataHandler.class);
+
private final String url;
private final boolean json;
private static final String KEY_POSITION = "position";
@@ -127,7 +130,7 @@ public class WebDataHandler extends BaseDataHandler {
try {
Context.getClient().target(formatRequest(position)).request().async().get();
} catch (UnsupportedEncodingException | JsonProcessingException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
}
return position;
diff --git a/src/org/traccar/api/AsyncSocket.java b/src/org/traccar/api/AsyncSocket.java
index 70523d253..783aeb740 100644
--- a/src/org/traccar/api/AsyncSocket.java
+++ b/src/org/traccar/api/AsyncSocket.java
@@ -18,9 +18,10 @@ package org.traccar.api;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.eclipse.jetty.websocket.api.Session;
import org.eclipse.jetty.websocket.api.WebSocketAdapter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
import org.traccar.database.ConnectionManager;
-import org.traccar.helper.Log;
import org.traccar.model.Device;
import org.traccar.model.Event;
import org.traccar.model.Position;
@@ -32,6 +33,8 @@ import java.util.Map;
public class AsyncSocket extends WebSocketAdapter implements ConnectionManager.UpdateListener {
+ private static final Logger LOGGER = LoggerFactory.getLogger(AsyncSocket.class);
+
private static final String KEY_DEVICES = "devices";
private static final String KEY_POSITIONS = "positions";
private static final String KEY_EVENTS = "events";
@@ -86,7 +89,7 @@ public class AsyncSocket extends WebSocketAdapter implements ConnectionManager.U
try {
getRemote().sendString(Context.getObjectMapper().writeValueAsString(data), null);
} catch (JsonProcessingException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
}
}
diff --git a/src/org/traccar/api/SecurityRequestFilter.java b/src/org/traccar/api/SecurityRequestFilter.java
index aace9f705..a76b34ad1 100644
--- a/src/org/traccar/api/SecurityRequestFilter.java
+++ b/src/org/traccar/api/SecurityRequestFilter.java
@@ -15,10 +15,11 @@
*/
package org.traccar.api;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
import org.traccar.api.resource.SessionResource;
import org.traccar.helper.DataConverter;
-import org.traccar.helper.Log;
import org.traccar.model.User;
import javax.annotation.security.PermitAll;
@@ -35,6 +36,8 @@ import java.sql.SQLException;
public class SecurityRequestFilter implements ContainerRequestFilter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SecurityRequestFilter.class);
+
public static final String AUTHORIZATION_HEADER = "Authorization";
public static final String WWW_AUTHENTICATE = "WWW-Authenticate";
public static final String BASIC_REALM = "Basic realm=\"api\"";
@@ -93,7 +96,7 @@ public class SecurityRequestFilter implements ContainerRequestFilter {
}
} catch (SecurityException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
if (securityContext != null) {
diff --git a/src/org/traccar/database/BaseObjectManager.java b/src/org/traccar/database/BaseObjectManager.java
index cc1dbde5f..7a17f8934 100644
--- a/src/org/traccar/database/BaseObjectManager.java
+++ b/src/org/traccar/database/BaseObjectManager.java
@@ -24,11 +24,14 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.model.BaseModel;
public class BaseObjectManager<T extends BaseModel> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(BaseObjectManager.class);
+
private final DataManager dataManager;
private Map<Long, T> items;
@@ -74,7 +77,7 @@ public class BaseObjectManager<T extends BaseModel> {
}
}
} catch (SQLException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/database/CommandsManager.java b/src/org/traccar/database/CommandsManager.java
index c11f05f9b..daf154dc4 100644
--- a/src/org/traccar/database/CommandsManager.java
+++ b/src/org/traccar/database/CommandsManager.java
@@ -26,15 +26,18 @@ import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.BaseProtocol;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import org.traccar.model.Typed;
import org.traccar.model.Position;
public class CommandsManager extends ExtendedObjectManager<Command> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(CommandsManager.class);
+
private final Map<Long, Queue<Command>> deviceQueues = new ConcurrentHashMap<>();
private boolean queueing;
@@ -126,7 +129,7 @@ public class CommandsManager extends ExtendedObjectManager<Command> {
try {
result.add(new Typed(field.get(null).toString()));
} catch (IllegalArgumentException | IllegalAccessException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/database/ConnectionManager.java b/src/org/traccar/database/ConnectionManager.java
index ef2085295..3918bcc5f 100644
--- a/src/org/traccar/database/ConnectionManager.java
+++ b/src/org/traccar/database/ConnectionManager.java
@@ -18,11 +18,12 @@ package org.traccar.database;
import io.netty.channel.Channel;
import io.netty.util.Timeout;
import io.netty.util.TimerTask;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
import org.traccar.GlobalTimer;
import org.traccar.Protocol;
import org.traccar.events.OverspeedEventHandler;
-import org.traccar.helper.Log;
import org.traccar.model.Device;
import org.traccar.model.DeviceState;
import org.traccar.model.Event;
@@ -40,6 +41,8 @@ import java.util.concurrent.TimeUnit;
public class ConnectionManager {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConnectionManager.class);
+
private static final long DEFAULT_TIMEOUT = 600;
private final long deviceTimeout;
@@ -130,7 +133,7 @@ public class ConnectionManager {
try {
Context.getDeviceManager().updateDeviceStatus(device);
} catch (SQLException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
updateDevice(device);
diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java
index 06dd26b17..71db329bc 100644
--- a/src/org/traccar/database/DataManager.java
+++ b/src/org/traccar/database/DataManager.java
@@ -39,9 +39,10 @@ import liquibase.exception.LiquibaseException;
import liquibase.resource.FileSystemResourceAccessor;
import liquibase.resource.ResourceAccessor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Config;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Attribute;
import org.traccar.model.Device;
import org.traccar.model.Driver;
@@ -65,6 +66,8 @@ import com.zaxxer.hikari.HikariDataSource;
public class DataManager {
+ private static final Logger LOGGER = LoggerFactory.getLogger(DataManager.class);
+
public static final String ACTION_SELECT_ALL = "selectAll";
public static final String ACTION_SELECT = "select";
public static final String ACTION_INSERT = "insert";
@@ -209,7 +212,7 @@ public class DataManager {
private String getQuery(String key) {
String query = config.getString(key);
if (query == null) {
- Log.info("Query not provided: " + key);
+ LOGGER.info("Query not provided: " + key);
}
return query;
}
@@ -234,7 +237,7 @@ public class DataManager {
query = constructObjectQuery(action, clazz, extended);
config.setString(queryName, query);
} else {
- Log.info("Query not provided: " + queryName);
+ LOGGER.info("Query not provided: " + queryName);
}
}
@@ -261,7 +264,7 @@ public class DataManager {
property.equals(User.class) ? ManagedUser.class : property);
config.setString(queryName, query);
} else {
- Log.info("Query not provided: " + queryName);
+ LOGGER.info("Query not provided: " + queryName);
}
}
@@ -358,7 +361,8 @@ public class DataManager {
long historyDays = config.getInteger("database.historyDays");
if (historyDays != 0) {
Date timeLimit = new Date(System.currentTimeMillis() - historyDays * 24 * 3600 * 1000);
- Log.debug("Clearing history earlier than " + new SimpleDateFormat(Log.DATE_FORMAT).format(timeLimit));
+ LOGGER.debug(
+ "Clearing history earlier than " + new SimpleDateFormat(Context.DATE_FORMAT).format(timeLimit));
QueryBuilder.create(dataSource, getQuery("database.deletePositions"))
.setDate("serverTime", timeLimit)
.executeUpdate();
diff --git a/src/org/traccar/database/DeviceManager.java b/src/org/traccar/database/DeviceManager.java
index bc8894743..be413a108 100644
--- a/src/org/traccar/database/DeviceManager.java
+++ b/src/org/traccar/database/DeviceManager.java
@@ -25,9 +25,10 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Config;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Device;
import org.traccar.model.DeviceState;
import org.traccar.model.DeviceAccumulators;
@@ -37,6 +38,8 @@ import org.traccar.model.Server;
public class DeviceManager extends BaseObjectManager<Device> implements IdentityManager, ManagableObjects {
+ private static final Logger LOGGER = LoggerFactory.getLogger(DeviceManager.class);
+
public static final long DEFAULT_REFRESH_DELAY = 300;
private final Config config;
@@ -93,7 +96,7 @@ public class DeviceManager extends BaseObjectManager<Device> implements Identity
try {
updateDeviceCache(true);
} catch (SQLException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
result = super.getAllItems();
}
@@ -228,7 +231,7 @@ public class DeviceManager extends BaseObjectManager<Device> implements Identity
positions.put(position.getDeviceId(), position);
}
} catch (SQLException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/database/ExtendedObjectManager.java b/src/org/traccar/database/ExtendedObjectManager.java
index c9e349136..e48a3e802 100644
--- a/src/org/traccar/database/ExtendedObjectManager.java
+++ b/src/org/traccar/database/ExtendedObjectManager.java
@@ -23,8 +23,9 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Device;
import org.traccar.model.Group;
import org.traccar.model.Permission;
@@ -32,6 +33,8 @@ import org.traccar.model.BaseModel;
public abstract class ExtendedObjectManager<T extends BaseModel> extends SimpleObjectManager<T> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ExtendedObjectManager.class);
+
private final Map<Long, Set<Long>> deviceItems = new ConcurrentHashMap<>();
private final Map<Long, Set<Long>> deviceItemsWithGroups = new ConcurrentHashMap<>();
private final Map<Long, Set<Long>> groupItems = new ConcurrentHashMap<>();
@@ -105,7 +108,7 @@ public abstract class ExtendedObjectManager<T extends BaseModel> extends SimpleO
}
} catch (SQLException | ClassNotFoundException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/database/GroupsManager.java b/src/org/traccar/database/GroupsManager.java
index 262f15519..eca39f972 100644
--- a/src/org/traccar/database/GroupsManager.java
+++ b/src/org/traccar/database/GroupsManager.java
@@ -21,12 +21,15 @@ import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Group;
public class GroupsManager extends BaseObjectManager<Group> implements ManagableObjects {
+ private static final Logger LOGGER = LoggerFactory.getLogger(GroupsManager.class);
+
private AtomicLong groupsLastUpdate = new AtomicLong();
private final long dataRefreshDelay;
@@ -62,7 +65,7 @@ public class GroupsManager extends BaseObjectManager<Group> implements Managable
try {
updateGroupCache(true);
} catch (SQLException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
result = super.getAllItems();
}
diff --git a/src/org/traccar/database/LdapProvider.java b/src/org/traccar/database/LdapProvider.java
index eb975ad0f..612abe055 100644
--- a/src/org/traccar/database/LdapProvider.java
+++ b/src/org/traccar/database/LdapProvider.java
@@ -23,14 +23,17 @@ import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Config;
-import org.traccar.helper.Log;
import org.traccar.model.User;
import java.util.Hashtable;
public class LdapProvider {
+ private static final Logger LOGGER = LoggerFactory.getLogger(LdapProvider.class);
+
private String url;
private String searchBase;
private String idAttribute;
@@ -85,7 +88,7 @@ public class LdapProvider {
if (results.hasMoreElements()) {
results.nextElement();
if (results.hasMoreElements()) {
- Log.warning("Matched multiple users for the accountName: " + accountName);
+ LOGGER.warn("Matched multiple users for the accountName: " + accountName);
return false;
}
return true;
@@ -117,7 +120,7 @@ public class LdapProvider {
if (results.hasMoreElements()) {
searchResult = results.nextElement();
if (results.hasMoreElements()) {
- Log.warning("Matched multiple users for the accountName: " + accountName);
+ LOGGER.warn("Matched multiple users for the accountName: " + accountName);
return null;
}
}
@@ -155,7 +158,7 @@ public class LdapProvider {
user.setLogin(accountName);
user.setName(accountName);
user.setEmail(accountName);
- Log.warning(e);
+ LOGGER.warn(null, e);
}
return user;
}
diff --git a/src/org/traccar/database/MediaManager.java b/src/org/traccar/database/MediaManager.java
index eb23d162f..62459cb5e 100644
--- a/src/org/traccar/database/MediaManager.java
+++ b/src/org/traccar/database/MediaManager.java
@@ -16,7 +16,8 @@
package org.traccar.database;
import io.netty.buffer.ByteBuf;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileOutputStream;
@@ -31,6 +32,8 @@ import java.util.Date;
public class MediaManager {
+ private static final Logger LOGGER = LoggerFactory.getLogger(MediaManager.class);
+
private String path;
public MediaManager(String path) {
@@ -60,7 +63,7 @@ public class MediaManager {
fileChannel.force(false);
return name;
} catch (IOException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
}
return null;
diff --git a/src/org/traccar/database/NotificationManager.java b/src/org/traccar/database/NotificationManager.java
index 5dcb1d317..71a0a82e4 100644
--- a/src/org/traccar/database/NotificationManager.java
+++ b/src/org/traccar/database/NotificationManager.java
@@ -25,8 +25,9 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Calendar;
import org.traccar.model.Event;
import org.traccar.model.Notification;
@@ -35,6 +36,8 @@ import org.traccar.model.Typed;
public class NotificationManager extends ExtendedObjectManager<Notification> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(NotificationManager.class);
+
private boolean geocodeOnRequest;
public NotificationManager(DataManager dataManager) {
@@ -61,7 +64,7 @@ public class NotificationManager extends ExtendedObjectManager<Notification> {
try {
getDataManager().addObject(event);
} catch (SQLException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
if (position != null && geocodeOnRequest && Context.getGeocoder() != null && position.getAddress() == null) {
@@ -114,7 +117,7 @@ public class NotificationManager extends ExtendedObjectManager<Notification> {
try {
types.add(new Typed(field.get(null).toString()));
} catch (IllegalArgumentException | IllegalAccessException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/database/PermissionsManager.java b/src/org/traccar/database/PermissionsManager.java
index 1c19f2374..c9d548fd1 100644
--- a/src/org/traccar/database/PermissionsManager.java
+++ b/src/org/traccar/database/PermissionsManager.java
@@ -15,8 +15,9 @@
*/
package org.traccar.database;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Attribute;
import org.traccar.model.BaseModel;
import org.traccar.model.Calendar;
@@ -40,6 +41,8 @@ import java.util.Set;
public class PermissionsManager {
+ private static final Logger LOGGER = LoggerFactory.getLogger(PermissionsManager.class);
+
private final DataManager dataManager;
private final UsersManager usersManager;
@@ -108,7 +111,7 @@ public class PermissionsManager {
try {
server = dataManager.getServer();
} catch (SQLException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
@@ -143,7 +146,7 @@ public class PermissionsManager {
}
} catch (SQLException | ClassNotFoundException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
deviceUsers.clear();
diff --git a/src/org/traccar/database/QueryBuilder.java b/src/org/traccar/database/QueryBuilder.java
index af33458a8..8075223f2 100644
--- a/src/org/traccar/database/QueryBuilder.java
+++ b/src/org/traccar/database/QueryBuilder.java
@@ -16,8 +16,9 @@
package org.traccar.database;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.MiscFormatter;
import org.traccar.model.Permission;
@@ -43,6 +44,8 @@ import java.util.Map;
public final class QueryBuilder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(QueryBuilder.class);
+
private final Map<String, List<Integer>> indexMap = new HashMap<>();
private Connection connection;
private PreparedStatement statement;
@@ -289,7 +292,7 @@ public final class QueryBuilder {
}
}
} catch (IllegalAccessException | InvocationTargetException | JsonProcessingException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
@@ -321,7 +324,7 @@ public final class QueryBuilder {
try {
method.invoke(object, resultSet.getBoolean(name));
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
});
@@ -332,7 +335,7 @@ public final class QueryBuilder {
try {
method.invoke(object, resultSet.getInt(name));
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
});
@@ -343,7 +346,7 @@ public final class QueryBuilder {
try {
method.invoke(object, resultSet.getLong(name));
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
});
@@ -354,7 +357,7 @@ public final class QueryBuilder {
try {
method.invoke(object, resultSet.getDouble(name));
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
});
@@ -365,7 +368,7 @@ public final class QueryBuilder {
try {
method.invoke(object, resultSet.getString(name));
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
});
@@ -379,7 +382,7 @@ public final class QueryBuilder {
method.invoke(object, new Date(timestamp.getTime()));
}
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
});
@@ -390,7 +393,7 @@ public final class QueryBuilder {
try {
method.invoke(object, resultSet.getBytes(name));
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
});
@@ -403,7 +406,7 @@ public final class QueryBuilder {
try {
method.invoke(object, Context.getObjectMapper().readValue(value, parameterType));
} catch (InvocationTargetException | IllegalAccessException | IOException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/database/SimpleObjectManager.java b/src/org/traccar/database/SimpleObjectManager.java
index 0b4d11378..bf790da29 100644
--- a/src/org/traccar/database/SimpleObjectManager.java
+++ b/src/org/traccar/database/SimpleObjectManager.java
@@ -22,8 +22,9 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.BaseModel;
import org.traccar.model.Permission;
import org.traccar.model.User;
@@ -31,6 +32,8 @@ import org.traccar.model.User;
public abstract class SimpleObjectManager<T extends BaseModel> extends BaseObjectManager<T>
implements ManagableObjects {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SimpleObjectManager.class);
+
private Map<Long, Set<Long>> userItems;
protected SimpleObjectManager(DataManager dataManager, Class<T> baseClass) {
@@ -77,7 +80,7 @@ public abstract class SimpleObjectManager<T extends BaseModel> extends BaseObjec
getUserItems(permission.getOwnerId()).add(permission.getPropertyId());
}
} catch (SQLException | ClassNotFoundException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/database/StatisticsManager.java b/src/org/traccar/database/StatisticsManager.java
index 452cdffa0..f6ede0a12 100644
--- a/src/org/traccar/database/StatisticsManager.java
+++ b/src/org/traccar/database/StatisticsManager.java
@@ -16,8 +16,9 @@
package org.traccar.database;
import org.joda.time.format.ISODateTimeFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Statistics;
import javax.ws.rs.client.Entity;
@@ -31,6 +32,8 @@ import java.util.concurrent.atomic.AtomicInteger;
public class StatisticsManager {
+ private static final Logger LOGGER = LoggerFactory.getLogger(StatisticsManager.class);
+
private static final int SPLIT_MODE = Calendar.DAY_OF_MONTH;
private AtomicInteger lastUpdate = new AtomicInteger(Calendar.getInstance().get(SPLIT_MODE));
@@ -64,7 +67,7 @@ public class StatisticsManager {
try {
Context.getDataManager().addObject(statistics);
} catch (SQLException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
String url = Context.getConfig().getString("server.statistics");
@@ -72,7 +75,7 @@ public class StatisticsManager {
String time = ISODateTimeFormat.dateTime().print(statistics.getCaptureTime().getTime());
Form form = new Form();
- form.param("version", Log.getAppVersion());
+ form.param("version", Context.getAppVersion());
form.param("captureTime", time);
form.param("activeUsers", String.valueOf(statistics.getActiveUsers()));
form.param("activeDevices", String.valueOf(statistics.getActiveDevices()));
diff --git a/src/org/traccar/geocoder/JsonGeocoder.java b/src/org/traccar/geocoder/JsonGeocoder.java
index 36a3acb76..c0c789a51 100644
--- a/src/org/traccar/geocoder/JsonGeocoder.java
+++ b/src/org/traccar/geocoder/JsonGeocoder.java
@@ -15,8 +15,9 @@
*/
package org.traccar.geocoder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import javax.json.JsonObject;
import javax.ws.rs.ClientErrorException;
@@ -29,6 +30,8 @@ import java.util.Map;
public abstract class JsonGeocoder implements Geocoder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(JsonGeocoder.class);
+
private final String url;
private final AddressFormat addressFormat;
@@ -64,7 +67,7 @@ public abstract class JsonGeocoder implements Geocoder {
if (callback != null) {
callback.onFailure(new GeocoderException("Empty address"));
} else {
- Log.warning("Empty address");
+ LOGGER.warn("Empty address");
}
}
return null;
@@ -102,7 +105,7 @@ public abstract class JsonGeocoder implements Geocoder {
try {
return handleResponse(latitude, longitude, request.get(JsonObject.class), null);
} catch (ClientErrorException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
}
return null;
diff --git a/src/org/traccar/helper/Log.java b/src/org/traccar/helper/Log.java
index a22e4bde2..42cd07cef 100644
--- a/src/org/traccar/helper/Log.java
+++ b/src/org/traccar/helper/Log.java
@@ -15,126 +15,137 @@
*/
package org.traccar.helper;
-import org.apache.log4j.Appender;
-import org.apache.log4j.DailyRollingFileAppender;
-import org.apache.log4j.Layout;
-import org.apache.log4j.Level;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PatternLayout;
-import org.apache.log4j.varia.NullAppender;
import org.traccar.Config;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
import java.io.IOException;
-import java.lang.management.ManagementFactory;
-import java.lang.management.MemoryMXBean;
-import java.lang.management.OperatingSystemMXBean;
-import java.lang.management.RuntimeMXBean;
-import java.nio.charset.Charset;
+import java.io.Writer;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Formatter;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
public final class Log {
private Log() {
}
- public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
-
- private static final String LOGGER_NAME = "traccar";
-
private static final String STACK_PACKAGE = "org.traccar";
private static final int STACK_LIMIT = 3;
- private static Logger logger = null;
-
- public static String getAppVersion() {
- return Log.class.getPackage().getImplementationVersion();
- }
+ private static class RollingFileHandler extends Handler {
- public static void setupLogger(Config config) throws IOException {
+ private String name;
+ private String suffix;
+ private Writer writer;
- Layout layout = new PatternLayout("%d{" + DATE_FORMAT + "} %5p: %m%n");
+ RollingFileHandler(String name) {
+ this.name = name;
+ }
- Appender appender = new DailyRollingFileAppender(
- layout, config.getString("logger.file"), "'.'yyyyMMdd");
+ @Override
+ public synchronized void publish(LogRecord record) {
+ if (isLoggable(record)) {
+ try {
+ String suffix = new SimpleDateFormat("yyyyMMdd").format(new Date(record.getMillis()));
+ if (writer != null && !suffix.equals(this.suffix)) {
+ writer.close();
+ writer = null;
+ new File(name).renameTo(new File(name + "." + this.suffix));
+ }
+ if (writer == null) {
+ this.suffix = suffix;
+ writer = new BufferedWriter(new FileWriter(name));
+ }
+ writer.write(getFormatter().format(record));
+ writer.flush();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
- LogManager.resetConfiguration();
- LogManager.getRootLogger().addAppender(new NullAppender());
+ @Override
+ public void flush() {
+ if (writer != null) {
+ try {
+ writer.flush();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
- logger = Logger.getLogger(LOGGER_NAME);
- logger.addAppender(appender);
- logger.setLevel(Level.toLevel(config.getString("logger.level"), Level.ALL));
+ @Override
+ public void close() throws SecurityException {
+ if (writer != null) {
+ try {
+ writer.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
- Log.logSystemInfo();
- Log.info("Version: " + getAppVersion());
}
- public static Logger getLogger() {
- if (logger == null) {
- logger = Logger.getLogger(LOGGER_NAME);
- logger.setLevel(Level.OFF);
+ public static class LogFormatter extends Formatter {
+
+ private static String formatLevel(Level level) {
+ switch (level.getName()) {
+ case "FINEST":
+ return "TRACE";
+ case "FINER":
+ case "FINE":
+ return "DEBUG";
+ case "INFO":
+ return "INFO";
+ case "WARNING":
+ return "WARN";
+ case "SEVERE":
+ default:
+ return "ERROR";
+ }
}
- return logger;
- }
- public static void logSystemInfo() {
- try {
- OperatingSystemMXBean operatingSystemBean = ManagementFactory.getOperatingSystemMXBean();
- Log.info("Operating system"
- + " name: " + operatingSystemBean.getName()
- + " version: " + operatingSystemBean.getVersion()
- + " architecture: " + operatingSystemBean.getArch());
-
- RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();
- Log.info("Java runtime"
- + " name: " + runtimeBean.getVmName()
- + " vendor: " + runtimeBean.getVmVendor()
- + " version: " + runtimeBean.getVmVersion());
-
- MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
- Log.info("Memory limit"
- + " heap: " + memoryBean.getHeapMemoryUsage().getMax() / (1024 * 1024) + "mb"
- + " non-heap: " + memoryBean.getNonHeapMemoryUsage().getMax() / (1024 * 1024) + "mb");
-
- Log.info("Character encoding: "
- + System.getProperty("file.encoding") + " charset: " + Charset.defaultCharset());
-
- } catch (Exception error) {
- Log.warning("Failed to get system info");
- }
- }
+ @Override
+ public String format(LogRecord record) {
+ StringBuilder message = new StringBuilder(record.getMessage());
- public static void error(String msg) {
- getLogger().error(msg);
- }
+ if (record.getThrown() != null) {
+ message.append(" - ").append(exceptionStack(record.getThrown()));
+ }
- public static void warning(String msg) {
- getLogger().warn(msg);
- }
+ return String.format("%1$tF %1$tT %2$5s: %3$s%n",
+ new Date(record.getMillis()), formatLevel(record.getLevel()), message.toString());
+ }
- public static void warning(Throwable exception) {
- warning(null, exception);
}
- public static void warning(String msg, Throwable exception) {
- StringBuilder s = new StringBuilder();
- if (msg != null) {
- s.append(msg);
+ public static void setupLogger(Config config) throws IOException {
+
+ Logger rootLogger = Logger.getLogger("");
+ for (Handler handler : rootLogger.getHandlers()) {
+ rootLogger.removeHandler(handler);
}
- if (exception != null) {
- if (msg != null) {
- s.append(" - ");
- }
- s.append(exceptionStack(exception));
+
+ Handler handler;
+ if (config.getBoolean("logger.console")) {
+ handler = new ConsoleHandler();
+ } else {
+ handler = new RollingFileHandler(config.getString("logger.file"));
}
- getLogger().warn(s.toString());
- }
- public static void info(String msg) {
- getLogger().info(msg);
- }
+ handler.setFormatter(new LogFormatter());
+ handler.setLevel(Level.parse(config.getString("logger.level").toUpperCase()));
- public static void debug(String msg) {
- getLogger().debug(msg);
+ rootLogger.addHandler(handler);
}
public static String exceptionStack(Throwable exception) {
diff --git a/src/org/traccar/helper/LogAction.java b/src/org/traccar/helper/LogAction.java
index 2f575537d..db13337b8 100644
--- a/src/org/traccar/helper/LogAction.java
+++ b/src/org/traccar/helper/LogAction.java
@@ -18,10 +18,14 @@ package org.traccar.helper;
import java.beans.Introspector;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.model.BaseModel;
public final class LogAction {
+ private static final Logger LOGGER = LoggerFactory.getLogger(LogAction.class);
+
private LogAction() {
}
@@ -71,26 +75,25 @@ public final class LogAction {
}
public static void resetDeviceAccumulators(long userId, long deviceId) {
- log(String.format(PATTERN_DEVICE_ACCUMULATORS, userId, ACTION_DEVICE_ACCUMULATORS, deviceId));
+ LOGGER.info(String.format(
+ PATTERN_DEVICE_ACCUMULATORS, userId, ACTION_DEVICE_ACCUMULATORS, deviceId));
}
private static void logObjectAction(String action, long userId, Class<?> clazz, long objectId) {
- log(String.format(PATTERN_OBJECT, userId, action, Introspector.decapitalize(clazz.getSimpleName()), objectId));
+ LOGGER.info(String.format(
+ PATTERN_OBJECT, userId, action, Introspector.decapitalize(clazz.getSimpleName()), objectId));
}
private static void logLinkAction(String action, long userId,
Class<?> owner, long ownerId, Class<?> property, long propertyId) {
- log(String.format(PATTERN_LINK, userId, action,
+ LOGGER.info(String.format(
+ PATTERN_LINK, userId, action,
Introspector.decapitalize(owner.getSimpleName()), ownerId,
Introspector.decapitalize(property.getSimpleName()), propertyId));
}
private static void logLoginAction(String action, long userId) {
- log(String.format(PATTERN_LOGIN, userId, action));
- }
-
- private static void log(String msg) {
- Log.info(msg);
+ LOGGER.info(String.format(PATTERN_LOGIN, userId, action));
}
}
diff --git a/src/org/traccar/helper/PatternUtil.java b/src/org/traccar/helper/PatternUtil.java
index 1bbb166a6..53eeb0b24 100644
--- a/src/org/traccar/helper/PatternUtil.java
+++ b/src/org/traccar/helper/PatternUtil.java
@@ -15,6 +15,9 @@
*/
package org.traccar.helper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.lang.management.ManagementFactory;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -22,6 +25,8 @@ import java.util.regex.PatternSyntaxException;
public final class PatternUtil {
+ private static final Logger LOGGER = LoggerFactory.getLogger(PatternUtil.class);
+
private PatternUtil() {
}
@@ -66,7 +71,7 @@ public final class PatternUtil {
result.stringTail = input.substring(matcher.group(1).length());
}
} catch (PatternSyntaxException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
diff --git a/src/org/traccar/model/Server.java b/src/org/traccar/model/Server.java
index c6161397b..66aa7ee75 100644
--- a/src/org/traccar/model/Server.java
+++ b/src/org/traccar/model/Server.java
@@ -15,14 +15,14 @@
*/
package org.traccar.model;
+import org.traccar.Context;
import org.traccar.database.QueryIgnore;
-import org.traccar.helper.Log;
public class Server extends ExtendedModel {
@QueryIgnore
public String getVersion() {
- return Log.getAppVersion();
+ return Context.getAppVersion();
}
public void setVersion(String version) {
diff --git a/src/org/traccar/notification/NotificationFormatter.java b/src/org/traccar/notification/NotificationFormatter.java
index c011403c5..57be29b31 100644
--- a/src/org/traccar/notification/NotificationFormatter.java
+++ b/src/org/traccar/notification/NotificationFormatter.java
@@ -26,8 +26,9 @@ import org.apache.velocity.VelocityContext;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.tools.generic.DateTool;
import org.apache.velocity.tools.generic.NumberTool;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Device;
import org.traccar.model.Event;
import org.traccar.model.Position;
@@ -36,6 +37,8 @@ import org.traccar.reports.ReportUtils;
public final class NotificationFormatter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(NotificationFormatter.class);
+
private NotificationFormatter() {
}
@@ -81,7 +84,7 @@ public final class NotificationFormatter {
templateFilePath = Paths.get(path, event.getType() + ".vm").toString();
template = Context.getVelocityEngine().getTemplate(templateFilePath, StandardCharsets.UTF_8.name());
} catch (ResourceNotFoundException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
templateFilePath = Paths.get(path, "unknown.vm").toString();
template = Context.getVelocityEngine().getTemplate(templateFilePath, StandardCharsets.UTF_8.name());
}
diff --git a/src/org/traccar/notification/NotificatorManager.java b/src/org/traccar/notification/NotificatorManager.java
index a3b13ef25..7e8a9dd0e 100644
--- a/src/org/traccar/notification/NotificatorManager.java
+++ b/src/org/traccar/notification/NotificatorManager.java
@@ -21,14 +21,17 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Typed;
import org.traccar.notificators.NotificatorNull;
import org.traccar.notificators.Notificator;
public final class NotificatorManager {
+ private static final Logger LOGGER = LoggerFactory.getLogger(NotificatorManager.class);
+
private static final String DEFAULT_WEB_NOTIFICATOR = "org.traccar.notificators.NotificatorWeb";
private static final String DEFAULT_MAIL_NOTIFICATOR = "org.traccar.notificators.NotificatorMail";
private static final String DEFAULT_SMS_NOTIFICATOR = "org.traccar.notificators.NotificatorSms";
@@ -58,7 +61,7 @@ public final class NotificatorManager {
try {
notificators.put(type, (Notificator) Class.forName(className).newInstance());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
- Log.error("Unable to load notificator class for " + type + " " + className + " " + e.getMessage());
+ LOGGER.warn("Unable to load notificator class for " + type + " " + className + " " + e.getMessage());
}
}
}
@@ -66,7 +69,7 @@ public final class NotificatorManager {
public Notificator getNotificator(String type) {
final Notificator notificator = notificators.get(type);
if (notificator == null) {
- Log.error("No notificator configured for type : " + type);
+ LOGGER.warn("No notificator configured for type : " + type);
return NULL_NOTIFICATOR;
}
return notificator;
diff --git a/src/org/traccar/notificators/Notificator.java b/src/org/traccar/notificators/Notificator.java
index de9817c9f..c3fad1607 100644
--- a/src/org/traccar/notificators/Notificator.java
+++ b/src/org/traccar/notificators/Notificator.java
@@ -16,20 +16,23 @@
*/
package org.traccar.notificators;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.model.Event;
import org.traccar.model.Position;
import org.traccar.notification.MessageException;
public abstract class Notificator {
+ private static final Logger LOGGER = LoggerFactory.getLogger(Notificator.class);
+
public void sendAsync(final long userId, final Event event, final Position position) {
new Thread(new Runnable() {
public void run() {
try {
sendSync(userId, event, position);
} catch (MessageException | InterruptedException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}).start();
diff --git a/src/org/traccar/notificators/NotificatorMail.java b/src/org/traccar/notificators/NotificatorMail.java
index cf786ffc4..7aa1a2968 100644
--- a/src/org/traccar/notificators/NotificatorMail.java
+++ b/src/org/traccar/notificators/NotificatorMail.java
@@ -26,8 +26,9 @@ import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Event;
import org.traccar.model.Position;
import org.traccar.model.User;
@@ -38,6 +39,8 @@ import org.traccar.notification.PropertiesProvider;
public final class NotificatorMail extends Notificator {
+ private static final Logger LOGGER = LoggerFactory.getLogger(NotificatorMail.class);
+
private static Properties getProperties(PropertiesProvider provider) {
Properties properties = new Properties();
String host = provider.getString("mail.smtp.host");
@@ -97,7 +100,7 @@ public final class NotificatorMail extends Notificator {
properties = getProperties(new PropertiesProvider(Context.getConfig()));
}
if (!properties.containsKey("mail.smtp.host")) {
- Log.warning("No SMTP configuration found");
+ LOGGER.warn("No SMTP configuration found");
return;
}
diff --git a/src/org/traccar/notificators/NotificatorNull.java b/src/org/traccar/notificators/NotificatorNull.java
index 2120cda0c..9364336be 100644
--- a/src/org/traccar/notificators/NotificatorNull.java
+++ b/src/org/traccar/notificators/NotificatorNull.java
@@ -16,19 +16,23 @@
*/
package org.traccar.notificators;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.model.Event;
import org.traccar.model.Position;
public final class NotificatorNull extends Notificator {
+ private static final Logger LOGGER = LoggerFactory.getLogger(NotificatorNull.class);
+
@Override
public void sendAsync(long userId, Event event, Position position) {
- Log.warning("You are using null notificatior, please check your configuration, notification not sent");
+ LOGGER.warn("You are using null notificatior, please check your configuration, notification not sent");
}
@Override
public void sendSync(long userId, Event event, Position position) {
- Log.warning("You are using null notificatior, please check your configuration, notification not sent");
+ LOGGER.warn("You are using null notificatior, please check your configuration, notification not sent");
}
+
}
diff --git a/src/org/traccar/processing/ComputedAttributesHandler.java b/src/org/traccar/processing/ComputedAttributesHandler.java
index a4edcc460..d4090e709 100644
--- a/src/org/traccar/processing/ComputedAttributesHandler.java
+++ b/src/org/traccar/processing/ComputedAttributesHandler.java
@@ -29,9 +29,10 @@ import io.netty.channel.ChannelHandler;
import org.apache.commons.jexl2.JexlEngine;
import org.apache.commons.jexl2.JexlException;
import org.apache.commons.jexl2.MapContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.BaseDataHandler;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.model.Attribute;
import org.traccar.model.Device;
import org.traccar.model.Position;
@@ -39,6 +40,8 @@ import org.traccar.model.Position;
@ChannelHandler.Sharable
public class ComputedAttributesHandler extends BaseDataHandler {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ComputedAttributesHandler.class);
+
private JexlEngine engine;
private boolean mapDeviceAttributes;
@@ -77,7 +80,7 @@ public class ComputedAttributesHandler extends BaseDataHandler {
}
}
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
@@ -98,7 +101,7 @@ public class ComputedAttributesHandler extends BaseDataHandler {
try {
result = computeAttribute(attribute, position);
} catch (JexlException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
if (result != null) {
try {
@@ -115,7 +118,7 @@ public class ComputedAttributesHandler extends BaseDataHandler {
position.getAttributes().put(attribute.getAttribute(), result.toString());
}
} catch (ClassCastException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/protocol/AdmProtocolEncoder.java b/src/org/traccar/protocol/AdmProtocolEncoder.java
index bcbf8a2f1..e76bc2ddc 100644
--- a/src/org/traccar/protocol/AdmProtocolEncoder.java
+++ b/src/org/traccar/protocol/AdmProtocolEncoder.java
@@ -17,7 +17,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class AdmProtocolEncoder extends StringProtocolEncoder {
@@ -33,11 +32,8 @@ public class AdmProtocolEncoder extends StringProtocolEncoder {
return formatCommand(command, "{%s}\r\n", Command.KEY_DATA);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/AplicomProtocolDecoder.java b/src/org/traccar/protocol/AplicomProtocolDecoder.java
index bfd92e0ad..bb821893a 100644
--- a/src/org/traccar/protocol/AplicomProtocolDecoder.java
+++ b/src/org/traccar/protocol/AplicomProtocolDecoder.java
@@ -18,11 +18,12 @@ package org.traccar.protocol;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.channel.Channel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.BaseProtocolDecoder;
import org.traccar.Context;
import org.traccar.DeviceSession;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.helper.UnitsConverter;
import org.traccar.model.Position;
@@ -33,6 +34,8 @@ import java.util.Date;
public class AplicomProtocolDecoder extends BaseProtocolDecoder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(AplicomProtocolDecoder.class);
+
public AplicomProtocolDecoder(AplicomProtocol protocol) {
super(protocol);
}
@@ -195,7 +198,7 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder {
}
break;
default:
- Log.warning(new UnsupportedOperationException());
+ LOGGER.warn(null, new UnsupportedOperationException());
break;
}
}
diff --git a/src/org/traccar/protocol/AstraProtocolDecoder.java b/src/org/traccar/protocol/AstraProtocolDecoder.java
index c386c7757..7c6a8fc1e 100644
--- a/src/org/traccar/protocol/AstraProtocolDecoder.java
+++ b/src/org/traccar/protocol/AstraProtocolDecoder.java
@@ -18,12 +18,13 @@ package org.traccar.protocol;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.Channel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.BaseProtocolDecoder;
import org.traccar.DeviceSession;
import org.traccar.NetworkMessage;
import org.traccar.helper.BitUtil;
import org.traccar.helper.DateBuilder;
-import org.traccar.helper.Log;
import org.traccar.helper.UnitsConverter;
import org.traccar.model.Position;
@@ -34,6 +35,8 @@ import java.util.List;
public class AstraProtocolDecoder extends BaseProtocolDecoder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(AstraProtocolDecoder.class);
+
public AstraProtocolDecoder(AstraProtocol protocol) {
super(protocol);
}
@@ -111,7 +114,7 @@ public class AstraProtocolDecoder extends BaseProtocolDecoder {
}
if (BitUtil.check(status, 6)) {
- Log.warning("Extension data is not supported");
+ LOGGER.warn("Extension data is not supported");
return position;
}
diff --git a/src/org/traccar/protocol/AtrackProtocolEncoder.java b/src/org/traccar/protocol/AtrackProtocolEncoder.java
index 1aa580435..1e085cb26 100644
--- a/src/org/traccar/protocol/AtrackProtocolEncoder.java
+++ b/src/org/traccar/protocol/AtrackProtocolEncoder.java
@@ -17,7 +17,6 @@ package org.traccar.protocol;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -32,11 +31,8 @@ public class AtrackProtocolEncoder extends BaseProtocolEncoder {
return Unpooled.copiedBuffer(
command.getString(Command.KEY_DATA) + "\r\n", StandardCharsets.US_ASCII);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/CarcellProtocolEncoder.java b/src/org/traccar/protocol/CarcellProtocolEncoder.java
index 0846949c4..e8f0081a0 100644
--- a/src/org/traccar/protocol/CarcellProtocolEncoder.java
+++ b/src/org/traccar/protocol/CarcellProtocolEncoder.java
@@ -16,7 +16,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class CarcellProtocolEncoder extends StringProtocolEncoder {
@@ -30,11 +29,8 @@ public class CarcellProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_ENGINE_RESUME:
return formatCommand(command, "$SRVCMD,{%s},BD#\r\n", Command.KEY_UNIQUE_ID);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/CastelProtocolEncoder.java b/src/org/traccar/protocol/CastelProtocolEncoder.java
index dde8ac11f..e1f78e7c1 100644
--- a/src/org/traccar/protocol/CastelProtocolEncoder.java
+++ b/src/org/traccar/protocol/CastelProtocolEncoder.java
@@ -20,7 +20,6 @@ import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.Context;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -28,6 +27,7 @@ import java.nio.charset.StandardCharsets;
public class CastelProtocolEncoder extends BaseProtocolEncoder {
private ByteBuf encodeContent(long deviceId, short type, ByteBuf content) {
+
ByteBuf buf = Unpooled.buffer(0);
String uniqueId = Context.getIdentityManager().getById(deviceId).getUniqueId();
@@ -63,10 +63,8 @@ public class CastelProtocolEncoder extends BaseProtocolEncoder {
content.writeByte(0);
return encodeContent(command.getDeviceId(), CastelProtocolDecoder.MSG_CC_PETROL_CONTROL, content);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
- return null;
}
}
diff --git a/src/org/traccar/protocol/CellocatorFrameDecoder.java b/src/org/traccar/protocol/CellocatorFrameDecoder.java
index 986dc75ec..9bf9601fe 100644
--- a/src/org/traccar/protocol/CellocatorFrameDecoder.java
+++ b/src/org/traccar/protocol/CellocatorFrameDecoder.java
@@ -18,11 +18,14 @@ package org.traccar.protocol;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.BaseFrameDecoder;
-import org.traccar.helper.Log;
public class CellocatorFrameDecoder extends BaseFrameDecoder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(CellocatorFrameDecoder.class);
+
private static final int MESSAGE_MINIMUM_LENGTH = 15;
@Override
@@ -54,7 +57,6 @@ public class CellocatorFrameDecoder extends BaseFrameDecoder {
length = 15 + buf.getUnsignedByte(13);
break;
default:
- Log.warning(new UnsupportedOperationException(String.valueOf(type)));
break;
}
diff --git a/src/org/traccar/protocol/CellocatorProtocolEncoder.java b/src/org/traccar/protocol/CellocatorProtocolEncoder.java
index 4eef42128..0382dbbc7 100644
--- a/src/org/traccar/protocol/CellocatorProtocolEncoder.java
+++ b/src/org/traccar/protocol/CellocatorProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class CellocatorProtocolEncoder extends BaseProtocolEncoder {
@@ -60,11 +59,8 @@ public class CellocatorProtocolEncoder extends BaseProtocolEncoder {
+ command.getInteger(Command.KEY_INDEX);
return encodeContent(command.getDeviceId(), 0x03, data, 0);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/CityeasyProtocolEncoder.java b/src/org/traccar/protocol/CityeasyProtocolEncoder.java
index e143563f0..350fdf0ab 100644
--- a/src/org/traccar/protocol/CityeasyProtocolEncoder.java
+++ b/src/org/traccar/protocol/CityeasyProtocolEncoder.java
@@ -21,7 +21,6 @@ import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class CityeasyProtocolEncoder extends BaseProtocolEncoder {
@@ -67,11 +66,8 @@ public class CityeasyProtocolEncoder extends BaseProtocolEncoder {
content.writeShort(Math.abs(timezone));
return encodeContent(CityeasyProtocolDecoder.MSG_TIMEZONE, content);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/EelinkProtocolEncoder.java b/src/org/traccar/protocol/EelinkProtocolEncoder.java
index 64236ca4a..c3ff88e1e 100644
--- a/src/org/traccar/protocol/EelinkProtocolEncoder.java
+++ b/src/org/traccar/protocol/EelinkProtocolEncoder.java
@@ -17,9 +17,10 @@ package org.traccar.protocol;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.DataConverter;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.ByteBuffer;
@@ -27,6 +28,8 @@ import java.nio.charset.StandardCharsets;
public class EelinkProtocolEncoder extends BaseProtocolEncoder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(EelinkProtocolEncoder.class);
+
private boolean connectionless;
public EelinkProtocolEncoder(boolean connectionless) {
@@ -100,11 +103,8 @@ public class EelinkProtocolEncoder extends BaseProtocolEncoder {
case Command.TYPE_REBOOT_DEVICE:
return encodeContent(command.getDeviceId(), "RESET#");
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/EnforaProtocolEncoder.java b/src/org/traccar/protocol/EnforaProtocolEncoder.java
index a8fe53691..a46e6367d 100644
--- a/src/org/traccar/protocol/EnforaProtocolEncoder.java
+++ b/src/org/traccar/protocol/EnforaProtocolEncoder.java
@@ -19,7 +19,6 @@ package org.traccar.protocol;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -49,11 +48,8 @@ public class EnforaProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_ENGINE_RESUME:
return encodeContent("AT$IOGP3=0");
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/EsealProtocolEncoder.java b/src/org/traccar/protocol/EsealProtocolEncoder.java
index 886bb80b1..b9bcc5b0a 100644
--- a/src/org/traccar/protocol/EsealProtocolEncoder.java
+++ b/src/org/traccar/protocol/EsealProtocolEncoder.java
@@ -16,7 +16,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class EsealProtocolEncoder extends StringProtocolEncoder {
@@ -35,11 +34,8 @@ public class EsealProtocolEncoder extends StringProtocolEncoder {
return formatCommand(
command, "##S,eSeal,{%s},256,3.0.8,RC-Unlock,E##", Command.KEY_UNIQUE_ID);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/GalileoProtocolEncoder.java b/src/org/traccar/protocol/GalileoProtocolEncoder.java
index 12463dc7d..3b2145e74 100644
--- a/src/org/traccar/protocol/GalileoProtocolEncoder.java
+++ b/src/org/traccar/protocol/GalileoProtocolEncoder.java
@@ -19,7 +19,6 @@ import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -61,11 +60,8 @@ public class GalileoProtocolEncoder extends BaseProtocolEncoder {
return encodeText(getUniqueId(command.getDeviceId()),
"Out " + command.getInteger(Command.KEY_INDEX) + "," + command.getString(Command.KEY_DATA));
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/Gl200ProtocolEncoder.java b/src/org/traccar/protocol/Gl200ProtocolEncoder.java
index 2c8efa318..285106c67 100644
--- a/src/org/traccar/protocol/Gl200ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Gl200ProtocolEncoder.java
@@ -16,7 +16,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class Gl200ProtocolEncoder extends StringProtocolEncoder {
@@ -40,11 +39,8 @@ public class Gl200ProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_REBOOT_DEVICE:
return formatCommand(command, "AT+GTRTO={%s},3,,,,,,FFFF$", Command.KEY_DEVICE_PASSWORD);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/Gps103ProtocolEncoder.java b/src/org/traccar/protocol/Gps103ProtocolEncoder.java
index 36801b401..47ef2f333 100644
--- a/src/org/traccar/protocol/Gps103ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Gps103ProtocolEncoder.java
@@ -16,7 +16,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class Gps103ProtocolEncoder extends StringProtocolEncoder implements StringProtocolEncoder.ValueFormatter {
@@ -62,11 +61,8 @@ public class Gps103ProtocolEncoder extends StringProtocolEncoder implements Stri
case Command.TYPE_REQUEST_PHOTO:
return formatCommand(command, "**,imei:{%s},160", Command.KEY_UNIQUE_ID);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/GranitProtocolEncoder.java b/src/org/traccar/protocol/GranitProtocolEncoder.java
index bde267ee6..6345ff971 100644
--- a/src/org/traccar/protocol/GranitProtocolEncoder.java
+++ b/src/org/traccar/protocol/GranitProtocolEncoder.java
@@ -20,36 +20,29 @@ import java.nio.charset.StandardCharsets;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class GranitProtocolEncoder extends BaseProtocolEncoder {
- @Override
- protected Object encodeCommand(Command command) {
- String commandString = "";
+ private ByteBuf encodeCommand(String commandString) {
+ ByteBuf buffer = Unpooled.buffer();
+ buffer.writeBytes(commandString.getBytes(StandardCharsets.US_ASCII));
+ GranitProtocolDecoder.appendChecksum(buffer, commandString.length());
+ return buffer;
+ }
+ @Override
+ protected Object encodeCommand(Command command) {
switch (command.getType()) {
case Command.TYPE_IDENTIFICATION:
- commandString = "BB+IDNT";
- break;
+ return encodeCommand("BB+IDNT");
case Command.TYPE_REBOOT_DEVICE:
- commandString = "BB+RESET";
- break;
+ return encodeCommand("BB+RESET");
case Command.TYPE_POSITION_SINGLE:
- commandString = "BB+RRCD";
- break;
+ return encodeCommand("BB+RRCD");
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
return null;
}
- if (!commandString.isEmpty()) {
- ByteBuf commandBuf = Unpooled.buffer();
- commandBuf.writeBytes(commandString.getBytes(StandardCharsets.US_ASCII));
- GranitProtocolDecoder.appendChecksum(commandBuf, commandString.length());
- return commandBuf;
- }
- return null;
}
}
diff --git a/src/org/traccar/protocol/GranitProtocolSmsEncoder.java b/src/org/traccar/protocol/GranitProtocolSmsEncoder.java
index 668e5d4d3..7d5518c17 100644
--- a/src/org/traccar/protocol/GranitProtocolSmsEncoder.java
+++ b/src/org/traccar/protocol/GranitProtocolSmsEncoder.java
@@ -17,7 +17,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class GranitProtocolSmsEncoder extends StringProtocolEncoder {
@@ -30,7 +29,6 @@ public class GranitProtocolSmsEncoder extends StringProtocolEncoder {
case Command.TYPE_POSITION_PERIODIC:
return formatCommand(command, "BB+BBMD={%s}", Command.KEY_FREQUENCY);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
return null;
}
}
diff --git a/src/org/traccar/protocol/Gt06ProtocolEncoder.java b/src/org/traccar/protocol/Gt06ProtocolEncoder.java
index 46b4fa5a4..05560229f 100644
--- a/src/org/traccar/protocol/Gt06ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Gt06ProtocolEncoder.java
@@ -20,7 +20,6 @@ import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.Context;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -72,11 +71,8 @@ public class Gt06ProtocolEncoder extends BaseProtocolEncoder {
case Command.TYPE_CUSTOM:
return encodeContent(command.getDeviceId(), command.getString(Command.KEY_DATA));
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/H02ProtocolEncoder.java b/src/org/traccar/protocol/H02ProtocolEncoder.java
index fb418dbab..87fad6016 100644
--- a/src/org/traccar/protocol/H02ProtocolEncoder.java
+++ b/src/org/traccar/protocol/H02ProtocolEncoder.java
@@ -19,7 +19,6 @@ package org.traccar.protocol;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class H02ProtocolEncoder extends StringProtocolEncoder {
@@ -57,11 +56,8 @@ public class H02ProtocolEncoder extends StringProtocolEncoder {
return formatCommand(
time, uniqueId, "S71", "22", command.getAttributes().get(Command.KEY_FREQUENCY).toString());
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
@Override
diff --git a/src/org/traccar/protocol/HuabaoProtocolEncoder.java b/src/org/traccar/protocol/HuabaoProtocolEncoder.java
index a2702fec7..056597b50 100644
--- a/src/org/traccar/protocol/HuabaoProtocolEncoder.java
+++ b/src/org/traccar/protocol/HuabaoProtocolEncoder.java
@@ -19,7 +19,6 @@ import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.DataConverter;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.text.SimpleDateFormat;
@@ -46,7 +45,6 @@ public class HuabaoProtocolEncoder extends BaseProtocolEncoder {
data.writeBytes(time);
return HuabaoProtocolDecoder.formatMessage(HuabaoProtocolDecoder.MSG_OIL_CONTROL, id, data);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
return null;
}
} finally {
diff --git a/src/org/traccar/protocol/Jt600ProtocolEncoder.java b/src/org/traccar/protocol/Jt600ProtocolEncoder.java
index 1d868cbcf..fe5c63c32 100644
--- a/src/org/traccar/protocol/Jt600ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Jt600ProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import java.util.TimeZone;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class Jt600ProtocolEncoder extends StringProtocolEncoder {
@@ -37,11 +36,8 @@ public class Jt600ProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_REBOOT_DEVICE:
return "(S17)";
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/KhdProtocolEncoder.java b/src/org/traccar/protocol/KhdProtocolEncoder.java
index 9c0f0b67a..c66129283 100644
--- a/src/org/traccar/protocol/KhdProtocolEncoder.java
+++ b/src/org/traccar/protocol/KhdProtocolEncoder.java
@@ -19,7 +19,6 @@ import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class KhdProtocolEncoder extends BaseProtocolEncoder {
@@ -61,11 +60,8 @@ public class KhdProtocolEncoder extends BaseProtocolEncoder {
case Command.TYPE_ENGINE_RESUME:
return encodeCommand(MSG_RESUME_OIL, uniqueId);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/MeiligaoProtocolEncoder.java b/src/org/traccar/protocol/MeiligaoProtocolEncoder.java
index 6052b2617..57cbbe0fc 100644
--- a/src/org/traccar/protocol/MeiligaoProtocolEncoder.java
+++ b/src/org/traccar/protocol/MeiligaoProtocolEncoder.java
@@ -20,7 +20,6 @@ import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.Checksum;
import org.traccar.helper.DataConverter;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -80,11 +79,8 @@ public class MeiligaoProtocolEncoder extends BaseProtocolEncoder {
case Command.TYPE_REBOOT_DEVICE:
return encodeContent(command.getDeviceId(), MeiligaoProtocolDecoder.MSG_REBOOT_GPS, content);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/MeitrackProtocolEncoder.java b/src/org/traccar/protocol/MeitrackProtocolEncoder.java
index af059508b..abb6ec9d4 100644
--- a/src/org/traccar/protocol/MeitrackProtocolEncoder.java
+++ b/src/org/traccar/protocol/MeitrackProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import org.traccar.Context;
import org.traccar.StringProtocolEncoder;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.util.Map;
@@ -59,11 +58,8 @@ public class MeitrackProtocolEncoder extends StringProtocolEncoder {
return formatCommand(command, 'f', "C02,0,"
+ attributes.get(Command.KEY_PHONE) + "," + attributes.get(Command.KEY_MESSAGE));
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/MiniFinderProtocolEncoder.java b/src/org/traccar/protocol/MiniFinderProtocolEncoder.java
index d3f49b4e4..7a3d5b226 100644
--- a/src/org/traccar/protocol/MiniFinderProtocolEncoder.java
+++ b/src/org/traccar/protocol/MiniFinderProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import java.util.TimeZone;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class MiniFinderProtocolEncoder extends StringProtocolEncoder implements StringProtocolEncoder.ValueFormatter {
@@ -76,7 +75,6 @@ public class MiniFinderProtocolEncoder extends StringProtocolEncoder implements
case Command.TYPE_SET_INDICATOR:
return formatCommand(command, "{%s}LED{%s}", Command.KEY_DEVICE_PASSWORD, Command.KEY_DATA);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
return null;
}
}
diff --git a/src/org/traccar/protocol/Mta6ProtocolDecoder.java b/src/org/traccar/protocol/Mta6ProtocolDecoder.java
index 94b624612..ec20658c7 100644
--- a/src/org/traccar/protocol/Mta6ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Mta6ProtocolDecoder.java
@@ -23,13 +23,14 @@ import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.FullHttpResponse;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.HttpVersion;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.BaseProtocolDecoder;
import org.traccar.DeviceSession;
import org.traccar.NetworkMessage;
import org.traccar.Protocol;
import org.traccar.helper.BitUtil;
import org.traccar.helper.DateBuilder;
-import org.traccar.helper.Log;
import org.traccar.helper.UnitsConverter;
import org.traccar.model.Position;
@@ -41,6 +42,8 @@ import java.util.List;
public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(Mta6ProtocolDecoder.class);
+
private final boolean simple;
public Mta6ProtocolDecoder(Protocol protocol, boolean simple) {
@@ -85,7 +88,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
previousFloat = (previousFloat & 0xff000000) + ((buf.readUnsignedMedium() & 0x3fffff) << 2);
break;
default:
- Log.warning(new IllegalArgumentException());
+ LOGGER.warn(null, new IllegalArgumentException());
break;
}
return Float.intBitsToFloat(previousFloat);
@@ -192,7 +195,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
positions.add(position);
}
} catch (IndexOutOfBoundsException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
return positions;
diff --git a/src/org/traccar/protocol/NavigilProtocolDecoder.java b/src/org/traccar/protocol/NavigilProtocolDecoder.java
index 19eb37c27..c330907f7 100644
--- a/src/org/traccar/protocol/NavigilProtocolDecoder.java
+++ b/src/org/traccar/protocol/NavigilProtocolDecoder.java
@@ -22,7 +22,6 @@ import org.traccar.BaseProtocolDecoder;
import org.traccar.DeviceSession;
import org.traccar.NetworkMessage;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.helper.UnitsConverter;
import org.traccar.model.Position;
@@ -301,11 +300,8 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
case MSG_TRACKING_DATA:
return parseTrackingData(deviceSession, buf, sequenceNumber, timestamp);
default:
- Log.warning(new UnsupportedOperationException(String.valueOf(messageId)));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/NoranProtocolEncoder.java b/src/org/traccar/protocol/NoranProtocolEncoder.java
index 53b0c54ba..92826c8b2 100644
--- a/src/org/traccar/protocol/NoranProtocolEncoder.java
+++ b/src/org/traccar/protocol/NoranProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -58,11 +57,8 @@ public class NoranProtocolEncoder extends BaseProtocolEncoder {
case Command.TYPE_ENGINE_RESUME:
return encodeContent("*KW,000,007,000000,1#");
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/PretraceProtocolEncoder.java b/src/org/traccar/protocol/PretraceProtocolEncoder.java
index e8e2f66c7..9cf951e3b 100644
--- a/src/org/traccar/protocol/PretraceProtocolEncoder.java
+++ b/src/org/traccar/protocol/PretraceProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import org.traccar.BaseProtocolEncoder;
import org.traccar.Context;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class PretraceProtocolEncoder extends BaseProtocolEncoder {
@@ -40,7 +39,6 @@ public class PretraceProtocolEncoder extends BaseProtocolEncoder {
return formatCommand(
uniqueId, String.format("D221%1$d,%1$d,,", command.getInteger(Command.KEY_FREQUENCY)));
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
return null;
}
}
diff --git a/src/org/traccar/protocol/Pt502ProtocolEncoder.java b/src/org/traccar/protocol/Pt502ProtocolEncoder.java
index bd56e306a..ed18208cc 100644
--- a/src/org/traccar/protocol/Pt502ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Pt502ProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import java.util.TimeZone;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class Pt502ProtocolEncoder extends StringProtocolEncoder implements StringProtocolEncoder.ValueFormatter {
@@ -52,11 +51,8 @@ public class Pt502ProtocolEncoder extends StringProtocolEncoder implements Strin
case Command.TYPE_REQUEST_PHOTO:
return formatCommand(command, "#PHO\r\n");
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/RuptelaProtocolEncoder.java b/src/org/traccar/protocol/RuptelaProtocolEncoder.java
index 28aa65273..4242584c9 100644
--- a/src/org/traccar/protocol/RuptelaProtocolEncoder.java
+++ b/src/org/traccar/protocol/RuptelaProtocolEncoder.java
@@ -19,7 +19,6 @@ import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -67,11 +66,8 @@ public class RuptelaProtocolEncoder extends BaseProtocolEncoder {
content.writeInt(Integer.parseInt(command.getString(Command.KEY_DATA)));
return encodeContent(RuptelaProtocolDecoder.MSG_SET_ODOMETER, content);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/SkypatrolProtocolDecoder.java b/src/org/traccar/protocol/SkypatrolProtocolDecoder.java
index 054171914..826311052 100644
--- a/src/org/traccar/protocol/SkypatrolProtocolDecoder.java
+++ b/src/org/traccar/protocol/SkypatrolProtocolDecoder.java
@@ -17,12 +17,13 @@ package org.traccar.protocol;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.BaseProtocolDecoder;
import org.traccar.Context;
import org.traccar.DeviceSession;
import org.traccar.helper.BitUtil;
import org.traccar.helper.DateBuilder;
-import org.traccar.helper.Log;
import org.traccar.model.Position;
import java.net.SocketAddress;
@@ -30,6 +31,8 @@ import java.nio.charset.StandardCharsets;
public class SkypatrolProtocolDecoder extends BaseProtocolDecoder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SkypatrolProtocolDecoder.class);
+
private final long defaultMask;
public SkypatrolProtocolDecoder(SkypatrolProtocol protocol) {
@@ -81,7 +84,7 @@ public class SkypatrolProtocolDecoder extends BaseProtocolDecoder {
id = buf.toString(buf.readerIndex(), 22, StandardCharsets.US_ASCII).trim();
buf.skipBytes(22);
} else {
- Log.warning("No device id field");
+ LOGGER.warn("No device id field");
return null;
}
DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, id);
diff --git a/src/org/traccar/protocol/SuntechProtocolEncoder.java b/src/org/traccar/protocol/SuntechProtocolEncoder.java
index 5b1c802fa..90fa4aa39 100644
--- a/src/org/traccar/protocol/SuntechProtocolEncoder.java
+++ b/src/org/traccar/protocol/SuntechProtocolEncoder.java
@@ -16,7 +16,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class SuntechProtocolEncoder extends StringProtocolEncoder {
@@ -48,11 +47,8 @@ public class SuntechProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_ALARM_DISARM:
return formatCommand(command, "SA200CMD;{%s};02;Disable2\r", Command.KEY_UNIQUE_ID);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/SviasProtocolEncoder.java b/src/org/traccar/protocol/SviasProtocolEncoder.java
index c26ee2032..9fce57223 100644
--- a/src/org/traccar/protocol/SviasProtocolEncoder.java
+++ b/src/org/traccar/protocol/SviasProtocolEncoder.java
@@ -17,7 +17,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class SviasProtocolEncoder extends StringProtocolEncoder {
@@ -42,10 +41,8 @@ public class SviasProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_ALARM_REMOVE:
return formatCommand(command, "AT+PNC=600*");
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
- return null;
}
}
diff --git a/src/org/traccar/protocol/T800xProtocolEncoder.java b/src/org/traccar/protocol/T800xProtocolEncoder.java
index ba17c9d75..1d0f3dabe 100644
--- a/src/org/traccar/protocol/T800xProtocolEncoder.java
+++ b/src/org/traccar/protocol/T800xProtocolEncoder.java
@@ -19,7 +19,6 @@ import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.DataConverter;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -53,11 +52,8 @@ public class T800xProtocolEncoder extends BaseProtocolEncoder {
case Command.TYPE_CUSTOM:
return encodeContent(command, command.getString(Command.KEY_DATA));
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/TeltonikaProtocolEncoder.java b/src/org/traccar/protocol/TeltonikaProtocolEncoder.java
index f2680c27c..944cec024 100644
--- a/src/org/traccar/protocol/TeltonikaProtocolEncoder.java
+++ b/src/org/traccar/protocol/TeltonikaProtocolEncoder.java
@@ -17,7 +17,6 @@ package org.traccar.protocol;
import org.traccar.BaseProtocolEncoder;
import org.traccar.helper.Checksum;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import io.netty.buffer.ByteBuf;
@@ -53,11 +52,8 @@ public class TeltonikaProtocolEncoder extends BaseProtocolEncoder {
case Command.TYPE_CUSTOM:
return encodeContent(command.getString(Command.KEY_DATA));
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/Tk103ProtocolEncoder.java b/src/org/traccar/protocol/Tk103ProtocolEncoder.java
index d64c85c2c..d4544707a 100644
--- a/src/org/traccar/protocol/Tk103ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Tk103ProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import org.traccar.Context;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class Tk103ProtocolEncoder extends StringProtocolEncoder {
@@ -75,7 +74,6 @@ public class Tk103ProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_SOS_NUMBER:
return formatAlt(command, "*master*{%s}*{%s}*", Command.KEY_DEVICE_PASSWORD, Command.KEY_PHONE);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
return null;
}
} else {
@@ -102,7 +100,6 @@ public class Tk103ProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_OUTPUT_CONTROL:
return formatCommand(command, "({%s}AV00{%s})", Command.KEY_UNIQUE_ID, Command.KEY_DATA);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
return null;
}
}
diff --git a/src/org/traccar/protocol/TotemProtocolEncoder.java b/src/org/traccar/protocol/TotemProtocolEncoder.java
index ff41a7df3..b5049859d 100644
--- a/src/org/traccar/protocol/TotemProtocolEncoder.java
+++ b/src/org/traccar/protocol/TotemProtocolEncoder.java
@@ -17,7 +17,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class TotemProtocolEncoder extends StringProtocolEncoder {
@@ -34,11 +33,8 @@ public class TotemProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_ENGINE_RESUME:
return formatCommand(command, "*{%s},025,C,0#", Command.KEY_DEVICE_PASSWORD);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/WatchProtocolEncoder.java b/src/org/traccar/protocol/WatchProtocolEncoder.java
index b2d35e702..482f2f0bf 100644
--- a/src/org/traccar/protocol/WatchProtocolEncoder.java
+++ b/src/org/traccar/protocol/WatchProtocolEncoder.java
@@ -18,7 +18,6 @@ package org.traccar.protocol;
import io.netty.channel.Channel;
import org.traccar.StringProtocolEncoder;
import org.traccar.helper.DataConverter;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
import java.nio.charset.StandardCharsets;
@@ -144,11 +143,8 @@ public class WatchProtocolEncoder extends StringProtocolEncoder implements Strin
case Command.TYPE_SET_INDICATOR:
return formatCommand(channel, command, "FLOWER,{%s}", Command.KEY_DATA);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/WialonProtocolEncoder.java b/src/org/traccar/protocol/WialonProtocolEncoder.java
index 9c60a1356..9ff1631eb 100644
--- a/src/org/traccar/protocol/WialonProtocolEncoder.java
+++ b/src/org/traccar/protocol/WialonProtocolEncoder.java
@@ -17,7 +17,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class WialonProtocolEncoder extends StringProtocolEncoder {
@@ -34,9 +33,8 @@ public class WialonProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_OUTPUT_CONTROL:
return formatCommand(command, "L{%s}={%s}\r\n", Command.KEY_INDEX, Command.KEY_DATA);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
- return null;
}
+
}
diff --git a/src/org/traccar/protocol/WondexProtocolEncoder.java b/src/org/traccar/protocol/WondexProtocolEncoder.java
index 6258c1fe6..f9e8eeb9b 100644
--- a/src/org/traccar/protocol/WondexProtocolEncoder.java
+++ b/src/org/traccar/protocol/WondexProtocolEncoder.java
@@ -16,10 +16,10 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class WondexProtocolEncoder extends StringProtocolEncoder {
+
@Override
protected Object encodeCommand(Command command) {
@@ -39,11 +39,8 @@ public class WondexProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_GET_VERSION:
return formatCommand(command, "$WP+VER={%s}", Command.KEY_DEVICE_PASSWORD);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/XexunProtocolEncoder.java b/src/org/traccar/protocol/XexunProtocolEncoder.java
index cdf3ac6f7..515cfbbd0 100644
--- a/src/org/traccar/protocol/XexunProtocolEncoder.java
+++ b/src/org/traccar/protocol/XexunProtocolEncoder.java
@@ -16,7 +16,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class XexunProtocolEncoder extends StringProtocolEncoder {
@@ -32,11 +31,8 @@ public class XexunProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_ENGINE_RESUME:
return formatCommand(command, "powercar{%s} 00", Command.KEY_DEVICE_PASSWORD);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/protocol/XirgoProtocolEncoder.java b/src/org/traccar/protocol/XirgoProtocolEncoder.java
index fde531831..dd5e30cca 100644
--- a/src/org/traccar/protocol/XirgoProtocolEncoder.java
+++ b/src/org/traccar/protocol/XirgoProtocolEncoder.java
@@ -16,7 +16,6 @@
package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
-import org.traccar.helper.Log;
import org.traccar.model.Command;
public class XirgoProtocolEncoder extends StringProtocolEncoder {
@@ -28,11 +27,8 @@ public class XirgoProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_OUTPUT_CONTROL:
return String.format("+XT:7005,%d,1", command.getInteger(Command.KEY_DATA) + 1);
default:
- Log.warning(new UnsupportedOperationException(command.getType()));
- break;
+ return null;
}
-
- return null;
}
}
diff --git a/src/org/traccar/smpp/ClientSmppSessionHandler.java b/src/org/traccar/smpp/ClientSmppSessionHandler.java
index 3585f8376..37882c76a 100644
--- a/src/org/traccar/smpp/ClientSmppSessionHandler.java
+++ b/src/org/traccar/smpp/ClientSmppSessionHandler.java
@@ -16,8 +16,9 @@
*/
package org.traccar.smpp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.events.TextMessageEventHandler;
-import org.traccar.helper.Log;
import com.cloudhopper.commons.charset.CharsetUtil;
import com.cloudhopper.smpp.SmppConstants;
@@ -29,6 +30,8 @@ import com.cloudhopper.smpp.util.SmppUtil;
public class ClientSmppSessionHandler extends DefaultSmppSessionHandler {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ClientSmppSessionHandler.class);
+
private SmppClient smppClient;
public ClientSmppSessionHandler(SmppClient smppClient) {
@@ -37,7 +40,7 @@ public class ClientSmppSessionHandler extends DefaultSmppSessionHandler {
@Override
public void firePduRequestExpired(PduRequest pduRequest) {
- Log.warning("PDU request expired: " + pduRequest);
+ LOGGER.warn("PDU request expired: " + pduRequest);
}
@Override
@@ -48,7 +51,7 @@ public class ClientSmppSessionHandler extends DefaultSmppSessionHandler {
String sourceAddress = ((DeliverSm) request).getSourceAddress().getAddress();
String message = CharsetUtil.decode(((DeliverSm) request).getShortMessage(),
smppClient.mapDataCodingToCharset(((DeliverSm) request).getDataCoding()));
- Log.debug("SMS Message Received: " + message.trim() + ", Source Address: " + sourceAddress);
+ LOGGER.debug("SMS Message Received: " + message.trim() + ", Source Address: " + sourceAddress);
boolean isDeliveryReceipt = false;
if (smppClient.getDetectDlrByOpts()) {
@@ -63,7 +66,7 @@ public class ClientSmppSessionHandler extends DefaultSmppSessionHandler {
}
response = request.createResponse();
} catch (Throwable error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
response = request.createResponse();
response.setResultMessage(error.getMessage());
response.setCommandStatus(SmppConstants.STATUS_UNKNOWNERR);
@@ -73,7 +76,7 @@ public class ClientSmppSessionHandler extends DefaultSmppSessionHandler {
@Override
public void fireChannelUnexpectedlyClosed() {
- Log.warning("SMPP session channel unexpectedly closed");
+ LOGGER.warn("SMPP session channel unexpectedly closed");
smppClient.scheduleReconnect();
}
}
diff --git a/src/org/traccar/smpp/EnquireLinkTask.java b/src/org/traccar/smpp/EnquireLinkTask.java
index affb712b3..3072f975a 100644
--- a/src/org/traccar/smpp/EnquireLinkTask.java
+++ b/src/org/traccar/smpp/EnquireLinkTask.java
@@ -16,7 +16,8 @@
*/
package org.traccar.smpp;
-import org.traccar.helper.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.cloudhopper.smpp.SmppSession;
import com.cloudhopper.smpp.pdu.EnquireLink;
@@ -27,6 +28,8 @@ import com.cloudhopper.smpp.type.UnrecoverablePduException;
public class EnquireLinkTask implements Runnable {
+ private static final Logger LOGGER = LoggerFactory.getLogger(EnquireLinkTask.class);
+
private SmppClient smppClient;
private Integer enquireLinkTimeout;
@@ -43,13 +46,13 @@ public class EnquireLinkTask implements Runnable {
smppSession.enquireLink(new EnquireLink(), enquireLinkTimeout);
} catch (SmppTimeoutException | SmppChannelException
| RecoverablePduException | UnrecoverablePduException error) {
- Log.warning("Enquire link failed, executing reconnect: ", error);
+ LOGGER.warn("Enquire link failed, executing reconnect: ", error);
smppClient.scheduleReconnect();
} catch (InterruptedException error) {
- Log.info("Enquire link interrupted, probably killed by reconnecting");
+ LOGGER.info("Enquire link interrupted, probably killed by reconnecting");
}
} else {
- Log.warning("Enquire link running while session is not connected");
+ LOGGER.warn("Enquire link running while session is not connected");
}
}
diff --git a/src/org/traccar/smpp/SmppClient.java b/src/org/traccar/smpp/SmppClient.java
index ddda4cb4f..d7e262c87 100644
--- a/src/org/traccar/smpp/SmppClient.java
+++ b/src/org/traccar/smpp/SmppClient.java
@@ -23,8 +23,9 @@ import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import org.traccar.notification.MessageException;
import org.traccar.sms.SmsManager;
@@ -46,6 +47,8 @@ import com.cloudhopper.smpp.type.UnrecoverablePduException;
public class SmppClient implements SmsManager {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SmppClient.class);
+
private SmppSessionConfiguration sessionConfig = new SmppSessionConfiguration();
private SmppSession smppSession;
private DefaultSmppSessionHandler sessionHandler = new ClientSmppSessionHandler(this);
@@ -168,10 +171,10 @@ public class SmppClient implements SmsManager {
smppSession = clientBootstrap.bind(sessionConfig, sessionHandler);
stopReconnectionkTask();
runEnquireLinkTask();
- Log.info("SMPP session connected");
+ LOGGER.info("SMPP session connected");
} catch (SmppTimeoutException | SmppChannelException
| UnrecoverablePduException | InterruptedException error) {
- Log.warning("Unable to connect to SMPP server: ", error);
+ LOGGER.warn("Unable to connect to SMPP server: ", error);
}
}
@@ -208,7 +211,7 @@ public class SmppClient implements SmsManager {
private void destroySession() {
if (smppSession != null) {
- Log.debug("Cleaning up SMPP session... ");
+ LOGGER.debug("Cleaning up SMPP session... ");
smppSession.destroy();
smppSession = null;
}
@@ -239,7 +242,7 @@ public class SmppClient implements SmsManager {
submit.setDestAddress(new Address(destTon, destNpi, destAddress));
SubmitSmResp submitResponce = getSession().submit(submit, submitTimeout);
if (submitResponce.getCommandStatus() == SmppConstants.STATUS_OK) {
- Log.debug("SMS submitted, message id: " + submitResponce.getMessageId());
+ LOGGER.debug("SMS submitted, message id: " + submitResponce.getMessageId());
} else {
throw new IllegalStateException(submitResponce.getResultMessage());
}
@@ -260,7 +263,7 @@ public class SmppClient implements SmsManager {
try {
sendMessageSync(destAddress, message, command);
} catch (MessageException | InterruptedException | IllegalStateException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
});
diff --git a/src/org/traccar/web/ConsoleServlet.java b/src/org/traccar/web/ConsoleServlet.java
index 9b3d8d54b..dddd13b6d 100644
--- a/src/org/traccar/web/ConsoleServlet.java
+++ b/src/org/traccar/web/ConsoleServlet.java
@@ -17,8 +17,9 @@ package org.traccar.web;
import org.h2.server.web.ConnectionInfo;
import org.h2.server.web.WebServlet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
@@ -26,6 +27,8 @@ import java.lang.reflect.Method;
public class ConsoleServlet extends WebServlet {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConsoleServlet.class);
+
@Override
public void init() {
super.init();
@@ -51,7 +54,7 @@ public class ConsoleServlet extends WebServlet {
method.invoke(server, true);
} catch (NoSuchFieldException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
}
diff --git a/src/org/traccar/web/CsvBuilder.java b/src/org/traccar/web/CsvBuilder.java
index fa99f1b18..d5149b528 100644
--- a/src/org/traccar/web/CsvBuilder.java
+++ b/src/org/traccar/web/CsvBuilder.java
@@ -31,11 +31,14 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.ISODateTimeFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Context;
-import org.traccar.helper.Log;
public class CsvBuilder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(CsvBuilder.class);
+
private static final String LINE_ENDING = "\r\n";
private static final String SEPARATOR = ";";
private static final DateTimeFormatter DATE_FORMAT = ISODateTimeFormat.dateTime();
@@ -103,12 +106,12 @@ public class CsvBuilder {
builder.append(map);
addSeparator();
} catch (JsonProcessingException e) {
- Log.warning(e);
+ LOGGER.warn(null, e);
}
}
}
} catch (IllegalAccessException | InvocationTargetException error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
}
diff --git a/src/org/traccar/web/WebServer.java b/src/org/traccar/web/WebServer.java
index 13eebf34f..32c336164 100644
--- a/src/org/traccar/web/WebServer.java
+++ b/src/org/traccar/web/WebServer.java
@@ -32,6 +32,8 @@ import org.eclipse.jetty.webapp.WebAppContext;
import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletContainer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.traccar.Config;
import org.traccar.Context;
import org.traccar.api.AsyncSocketServlet;
@@ -41,7 +43,6 @@ import org.traccar.api.ObjectMapperProvider;
import org.traccar.api.ResourceErrorHandler;
import org.traccar.api.SecurityRequestFilter;
import org.traccar.api.resource.ServerResource;
-import org.traccar.helper.Log;
import javax.naming.InitialContext;
import javax.servlet.DispatcherType;
@@ -56,6 +57,8 @@ import java.util.EnumSet;
public class WebServer {
+ private static final Logger LOGGER = LoggerFactory.getLogger(WebServer.class);
+
private Server server;
private final Config config;
private final DataSource dataSource;
@@ -150,7 +153,7 @@ public class WebServer {
javax.naming.Context context = new InitialContext();
context.bind("java:/DefaultDS", dataSource);
} catch (Exception error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
WebAppContext app = new WebAppContext();
@@ -196,7 +199,7 @@ public class WebServer {
try {
server.start();
} catch (Exception error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}
@@ -204,7 +207,7 @@ public class WebServer {
try {
server.stop();
} catch (Exception error) {
- Log.warning(error);
+ LOGGER.warn(null, error);
}
}