diff options
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/traccar/GenericPipelineFactory.java | 20 | ||||
-rw-r--r-- | src/org/traccar/Server.java | 9 | ||||
-rw-r--r-- | src/org/traccar/helper/Log.java | 4 | ||||
-rw-r--r-- | src/org/traccar/protocol/ProgressProtocolDecoder.java | 36 |
4 files changed, 47 insertions, 22 deletions
diff --git a/src/org/traccar/GenericPipelineFactory.java b/src/org/traccar/GenericPipelineFactory.java index 3d20ec433..556d86e1d 100644 --- a/src/org/traccar/GenericPipelineFactory.java +++ b/src/org/traccar/GenericPipelineFactory.java @@ -17,6 +17,7 @@ package org.traccar; import java.net.InetSocketAddress; import org.jboss.netty.buffer.ChannelBuffer; +import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.channel.*; import org.jboss.netty.handler.logging.LoggingHandler; import org.jboss.netty.handler.timeout.IdleStateHandler; @@ -63,22 +64,19 @@ public abstract class GenericPipelineFactory implements ChannelPipelineFactory { public void log(ChannelEvent e) { if (e instanceof MessageEvent) { MessageEvent event = (MessageEvent) e; - String msg = "[" + ((InetSocketAddress) e.getChannel().getLocalAddress()).getPort() + " - "; - msg += ((InetSocketAddress) event.getRemoteAddress()).getAddress().getHostAddress() + "]"; + StringBuilder msg = new StringBuilder(); + + msg.append("[").append(((InetSocketAddress) e.getChannel().getLocalAddress()).getPort()).append(" - "); + msg.append(((InetSocketAddress) event.getRemoteAddress()).getAddress().getHostAddress()).append("]"); // Append hex message if (event.getMessage() instanceof ChannelBuffer) { - ChannelBuffer buffer = (ChannelBuffer) event.getMessage(); - msg += " - (HEX: "; - for (int i = buffer.readerIndex(); i < buffer.writerIndex(); i++) { - byte b = buffer.getByte(i); - msg += HEX_CHARS.charAt((b & 0xf0) >> 4); - msg += HEX_CHARS.charAt((b & 0x0F)); - } - msg += ")"; + msg.append(" - (HEX: "); + msg.append(ChannelBuffers.hexDump((ChannelBuffer) event.getMessage())); + msg.append(")"); } - Log.fine(msg); + Log.fine(msg.toString()); } else if (e instanceof ExceptionEvent) { ExceptionEvent event = (ExceptionEvent) e; Log.warning(event.getCause().toString()); diff --git a/src/org/traccar/Server.java b/src/org/traccar/Server.java index 506513b60..2167a7933 100644 --- a/src/org/traccar/Server.java +++ b/src/org/traccar/Server.java @@ -28,8 +28,10 @@ import java.util.List; import java.util.Properties; import java.util.logging.FileHandler; 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; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.channel.ChannelPipeline; @@ -200,7 +202,12 @@ public class Server { } }); - // NOTE: Console logger level will remain INFO + // Remove old logging handlers + Handler[] handlers = Logger.getLogger("").getHandlers(); + for(Handler handler : handlers) { + Logger.getLogger("").removeHandler(handler); + } + Log.getLogger().setLevel(Level.ALL); Log.getLogger().addHandler(file); } diff --git a/src/org/traccar/helper/Log.java b/src/org/traccar/helper/Log.java index 69eea6579..03de36c46 100644 --- a/src/org/traccar/helper/Log.java +++ b/src/org/traccar/helper/Log.java @@ -22,12 +22,14 @@ import java.util.logging.Logger; * Logger */ public class Log { + + private static String TRACCAR_LOGGER_NAME = "traccar"; /** * Return global logger */ public static Logger getLogger() { - return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); + return Logger.getLogger(TRACCAR_LOGGER_NAME); } private static void write(Level level, String msg) { diff --git a/src/org/traccar/protocol/ProgressProtocolDecoder.java b/src/org/traccar/protocol/ProgressProtocolDecoder.java index 64aca8157..35db6e113 100644 --- a/src/org/traccar/protocol/ProgressProtocolDecoder.java +++ b/src/org/traccar/protocol/ProgressProtocolDecoder.java @@ -47,15 +47,17 @@ public class ProgressProtocolDecoder extends GenericProtocolDecoder { /* * Message types */ - static final int MSG_NULL = 0; - static final int MSG_IDENT = 1; - static final int MSG_IDENT_FULL = 2; - static final int MSG_POINT = 10; - static final int MSG_LOG_SYNC = 100; - static final int MSG_LOGMSG = 101; - static final int MSG_TEXT = 102; - static final int MSG_ALARM = 200; - static final int MSG_ALARM_RECIEVED = 201; + private static final int MSG_NULL = 0; + private static final int MSG_IDENT = 1; + private static final int MSG_IDENT_FULL = 2; + private static final int MSG_POINT = 10; + private static final int MSG_LOG_SYNC = 100; + private static final int MSG_LOGMSG = 101; + private static final int MSG_TEXT = 102; + private static final int MSG_ALARM = 200; + private static final int MSG_ALARM_RECIEVED = 201; + + private static final String HEX_CHARS = "0123456789ABCDEF"; /** * Decode message @@ -150,12 +152,28 @@ public class ProgressProtocolDecoder extends GenericProtocolDecoder { // CAN adapter if ((extraFlags & 0x2) == 0x2) { int size = buf.readUnsignedShort(); + extendedInfo.append("<can>"); + extendedInfo.append(buf.toString(buf.readerIndex(), size, Charset.defaultCharset())); + extendedInfo.append("</can>"); buf.skipBytes(size); } // Passenger sensor if ((extraFlags & 0x4) == 0x4) { int size = buf.readUnsignedShort(); + + // Convert binary data to hex + StringBuilder hex = new StringBuilder(); + for (int i = buf.readerIndex(); i < buf.readerIndex() + size; i++) { + byte b = buf.getByte(i); + hex.append(HEX_CHARS.charAt((b & 0xf0) >> 4)); + hex.append(HEX_CHARS.charAt((b & 0x0F))); + } + + extendedInfo.append("<passenger>"); + extendedInfo.append(hex); + extendedInfo.append("</passenger>"); + buf.skipBytes(size); } |