Do not require a dateformat if not needed
Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/025d756a Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/025d756a Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/025d756a Branch: refs/heads/master Commit: 025d756a68e29afde367e2139f2c6ce78118b714 Parents: c52dd71 Author: Scott Deboy <[email protected]> Authored: Thu Nov 20 14:26:16 2014 +0000 Committer: Scott Deboy <[email protected]> Committed: Thu Nov 20 14:26:16 2014 +0000 ---------------------------------------------------------------------- .../chainsaw/vfs/VFSLogFilePatternReceiver.java | 37 +++++++++++--------- .../log4j/varia/LogFilePatternReceiver.java | 21 ++++++----- 2 files changed, 33 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/025d756a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java b/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java index 1d7acc0..a0fc0d8 100644 --- a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java +++ b/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java @@ -355,18 +355,20 @@ public class VFSLogFilePatternReceiver extends LogFilePatternReceiver implements getLogger().warn("JSch not on classpath!", ncdfe); } - fileObject = fileSystemManager.resolveFile(getFileURL(), opts); - if (fileObject.exists()) { - reader = new InputStreamReader(fileObject.getContent().getInputStream() , "UTF-8"); - //now that we have a reader, remove additional portions of the file url (sftp passwords, etc.) - //check to see if the name is a URLFileName..if so, set file name to not include username/pass - if (fileObject.getName() instanceof URLFileName) { - URLFileName urlFileName = (URLFileName) fileObject.getName(); - setHost(urlFileName.getHostName()); - setPath(urlFileName.getPath()); + synchronized(fileSystemManager) { + fileObject = fileSystemManager.resolveFile(getFileURL(), opts); + if (fileObject.exists()) { + reader = new InputStreamReader(fileObject.getContent().getInputStream() , "UTF-8"); + //now that we have a reader, remove additional portions of the file url (sftp passwords, etc.) + //check to see if the name is a URLFileName..if so, set file name to not include username/pass + if (fileObject.getName() instanceof URLFileName) { + URLFileName urlFileName = (URLFileName) fileObject.getName(); + setHost(urlFileName.getHostName()); + setPath(urlFileName.getPath()); + } + } else { + getLogger().info(loggableFileURL + " not available - will re-attempt to load after waiting " + MISSING_FILE_RETRY_MILLIS + " millis"); } - } else { - getLogger().info(loggableFileURL + " not available - will re-attempt to load after waiting " + MISSING_FILE_RETRY_MILLIS + " millis"); } } catch (FileSystemException fse) { getLogger().info(loggableFileURL + " not available - may be due to incorrect credentials, but will re-attempt to load after waiting " + MISSING_FILE_RETRY_MILLIS + " millis", fse); @@ -404,12 +406,15 @@ public class VFSLogFilePatternReceiver extends LogFilePatternReceiver implements } //fileobject was created above, release it and construct a new one - if (fileObject != null) { - fileObject.getFileSystem().getFileSystemManager().closeFileSystem(fileObject.getFileSystem()); - fileObject.close(); - fileObject = null; + synchronized(fileSystemManager) { + if (fileObject != null) { + fileObject.getFileSystem().getFileSystemManager().closeFileSystem(fileObject.getFileSystem()); + fileObject.close(); + fileObject = null; + } + + fileObject = fileSystemManager.resolveFile(getFileURL(), opts); } - fileObject = fileSystemManager.resolveFile(getFileURL(), opts); //file may not exist.. boolean fileLarger = false; http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/025d756a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java b/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java index 3a39508..1c2e30c 100644 --- a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java +++ b/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java @@ -173,7 +173,7 @@ public class LogFilePatternReceiver extends Receiver { private final String[] emptyException = new String[] { "" }; private SimpleDateFormat dateFormat; - private String timestampFormat = "yyyy-MM-d HH:mm:ss,SSS"; + private String timestampFormat; private String logFormat; private String customLevelDefinitions; private String fileURL; @@ -357,7 +357,7 @@ public class LogFilePatternReceiver extends Receiver { /** * Accessor * - * @return timestamp format + * @return group */ public String getGroup() { return group; } @@ -481,7 +481,7 @@ public class LogFilePatternReceiver extends Receiver { if (currentMap.size() == 0) { if (additionalLines.size() > 0) { for (Iterator iter = additionalLines.iterator();iter.hasNext();) { - getLogger().info("found non-matching line: " + iter.next()); + getLogger().debug("found non-matching line: " + iter.next()); } } additionalLines.clear(); @@ -625,11 +625,14 @@ public class LogFilePatternReceiver extends Receiver { */ private String convertTimestamp() { //some locales (for example, French) generate timestamp text with characters not included in \w - - // now using \S (all non-whitespace characters) instead of /w - String result = timestampFormat.replaceAll(Pattern.quote("+"), "[+]"); - result = result.replaceAll(VALID_DATEFORMAT_CHAR_PATTERN, "\\\\S+"); - //make sure dots in timestamp are escaped - result = result.replaceAll(Pattern.quote("."), "\\\\."); + // now using \S (all non-whitespace characters) instead of /w + String result = ""; + if (timestampFormat != null) { + result = timestampFormat.replaceAll(Pattern.quote("+"), "[+]"); + result = result.replaceAll(VALID_DATEFORMAT_CHAR_PATTERN, "\\\\S+"); + //make sure dots in timestamp are escaped + result = result.replaceAll(Pattern.quote("."), "\\\\."); + } return result; } @@ -929,7 +932,7 @@ public class LogFilePatternReceiver extends Receiver { e.printStackTrace(); } } - //use current time if timestamp not parseable + //use current time if timestamp not parseable/dateformat not specified if (timeStamp == 0L) { timeStamp = System.currentTimeMillis(); }
