This is an automated email from the ASF dual-hosted git repository.

hxd pushed a commit to branch ut_close_socket
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/ut_close_socket by this push:
     new 6c8380d  add FileMonitor logger to monitot file open and close event
6c8380d is described below

commit 6c8380d5f8e37f412bcd426218880dafad678895
Author: xiangdong huang <[email protected]>
AuthorDate: Thu Feb 20 08:11:49 2020 +0800

    add FileMonitor logger to monitot file open and close event
---
 .../org/apache/iotdb/db/query/control/FileReaderManager.java   |  9 +++++++--
 .../main/java/org/apache/iotdb/db/service/MetricsService.java  |  4 ++--
 server/src/test/resources/logback.xml                          |  5 +++++
 .../org/apache/iotdb/tsfile/read/TsFileSequenceReader.java     |  9 +++++++--
 .../iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java     |  5 ++++-
 .../iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java    |  6 ++++--
 .../org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java   | 10 +++++++---
 7 files changed, 36 insertions(+), 12 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java 
b/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
index d52d4c9..dfabff8 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
@@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory;
 public class FileReaderManager implements IService {
 
   private static final Logger logger = 
LoggerFactory.getLogger(FileReaderManager.class);
+  private static final Logger resourceLogger = 
LoggerFactory.getLogger("FileMonitor");
 
   /**
    * max number of file streams being cached, must be lower than 65535.
@@ -198,13 +199,17 @@ public class FileReaderManager implements IService {
   public synchronized void closeAndRemoveAllOpenedReaders() throws IOException 
{
     for (Map.Entry<TsFileResource, TsFileSequenceReader> entry : 
closedFileReaderMap.entrySet()) {
       entry.getValue().close();
-      logger.error("{} closedTsFileReader is closed.", 
entry.getValue().getFileName());
+      if (resourceLogger.isInfoEnabled()) {
+        resourceLogger.info("{} closedTsFileReader is closed.", 
entry.getValue().getFileName());
+      }
       closedReferenceMap.remove(entry.getKey());
       closedFileReaderMap.remove(entry.getKey());
     }
     for (Map.Entry<TsFileResource, TsFileSequenceReader> entry : 
unclosedFileReaderMap.entrySet()) {
       entry.getValue().close();
-      logger.error("{} unclosedTsFileReader is closed.", 
entry.getValue().getFileName());
+      if (resourceLogger.isInfoEnabled()) {
+        resourceLogger.info("{} unclosedTsFileReader is closed.", 
entry.getValue().getFileName());
+      }
       unclosedReferenceMap.remove(entry.getKey());
       unclosedFileReaderMap.remove(entry.getKey());
     }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java 
b/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
index b087f2e..3456c75 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
@@ -114,7 +114,7 @@ public class MetricsService implements MetricsServiceMBean, 
IService {
 
   @Override
   public void stopService() {
-    logger.warn("{}: closing {}...", IoTDBConstant.GLOBAL_DB_NAME, 
this.getID().getName());
+    logger.info("{}: closing {}...", IoTDBConstant.GLOBAL_DB_NAME, 
this.getID().getName());
     try {
       if (server != null) {
         server.stop();
@@ -135,7 +135,7 @@ public class MetricsService implements MetricsServiceMBean, 
IService {
       executorService.shutdownNow();
     }
     checkAndWaitPortIsClosed();
-    logger.warn("{}: close {} successfully", IoTDBConstant.GLOBAL_DB_NAME, 
this.getID().getName());
+    logger.info("{}: close {} successfully", IoTDBConstant.GLOBAL_DB_NAME, 
this.getID().getName());
   }
 
   private void checkAndWaitPortIsClosed() {
diff --git a/server/src/test/resources/logback.xml 
b/server/src/test/resources/logback.xml
index b33456a..0061702 100644
--- a/server/src/test/resources/logback.xml
+++ b/server/src/test/resources/logback.xml
@@ -35,6 +35,11 @@
     </appender>
     <!--<logger name="org.apache.iotdb.db.utils.OpenFileNumUtil" level="debug" 
/>-->
     <!--<logger name="org.apache.iotdb.db.utils.OpenFileNumUtilTest" 
level="debug" />-->
+    <!-- enable me if you want to monitor when files are opened and closed.
+    <logger name="FileMonitor" level="info"/>
+    -->
+    <logger name="FileMonitor" level="info"/>
+    <logger name="org.apache.iotdb.db.service.MetricsService" level="INFO" />
     <root level="WARN">
         <appender-ref ref="stdout"/>
     </root>
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 9b02847..fa07bd5 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -57,6 +57,7 @@ import org.slf4j.LoggerFactory;
 public class TsFileSequenceReader implements AutoCloseable {
 
   private static final Logger logger = 
LoggerFactory.getLogger(TsFileSequenceReader.class);
+  private static final Logger resourceLogger = 
LoggerFactory.getLogger("FileMonitor");
   protected static final TSFileConfig config = 
TSFileDescriptor.getInstance().getConfig();
 
   protected String file;
@@ -92,7 +93,9 @@ public class TsFileSequenceReader implements AutoCloseable {
    * @param loadMetadataSize -whether load meta data size
    */
   public TsFileSequenceReader(String file, boolean loadMetadataSize) throws 
IOException {
-    logger.error("{} reader is opened. {}", file, getClass().getName());
+    if (resourceLogger.isInfoEnabled()) {
+      resourceLogger.info("{} reader is opened. {}", file, 
getClass().getName());
+    }
     this.file = file;
     tsFileInput = FSFactoryProducer.getFileInputFactory().getTsFileInput(file);
     // old version number of TsFile using little endian starts with "v"
@@ -467,7 +470,9 @@ public class TsFileSequenceReader implements AutoCloseable {
   }
 
   public void close() throws IOException {
-    logger.error("{} reader is closed.", file);
+    if (resourceLogger.isInfoEnabled()) {
+      resourceLogger.error("{} reader is closed.", file);
+    }
     this.tsFileInput.close();
     deviceMetadataMap = null;
   }
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java
index 1d74d7b..5ab6db0 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java
@@ -39,8 +39,11 @@ public class ForceAppendTsFileWriter extends TsFileIOWriter{
   private Map<String, MeasurementSchema> knownSchemas;
   private long truncatePosition;
   private static Logger logger = 
LoggerFactory.getLogger(ForceAppendTsFileWriter.class);
+  private static final Logger resourceLogger = 
LoggerFactory.getLogger("FileMonitor");
   public ForceAppendTsFileWriter(File file) throws IOException {
-    logger.error("{} is opened.", file.getName());
+    if (resourceLogger.isInfoEnabled()) {
+      resourceLogger.info("{} is opened.", file.getName());
+    }
     this.out = new DefaultTsFileOutput(file, true);
     this.file = file;
 
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
index 091ad7e..2b731a8 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
@@ -48,7 +48,7 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
 
   private static final Logger logger = LoggerFactory
       .getLogger(RestorableTsFileIOWriter.class);
-
+  private static final Logger resourceLogger = 
LoggerFactory.getLogger("FileMonitor");
   private long truncatedPosition = -1;
   private Map<String, MeasurementSchema> knownSchemas = new HashMap<>();
 
@@ -71,7 +71,9 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
    * @throws IOException if write failed, or the file is broken but 
autoRepair==false.
    */
   public RestorableTsFileIOWriter(File file) throws IOException {
-    logger.error("{} is opened.", file.getName());
+    if (resourceLogger.isInfoEnabled()) {
+      resourceLogger.info("{} is opened.", file.getName());
+    }
     this.file = file;
     this.out = 
FSFactoryProducer.getFileOutputFactory().getTsFileOutput(file.getPath(), true);
 
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
index a9f963e..98a2f8a 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
@@ -62,7 +62,7 @@ public class TsFileIOWriter {
   public static final byte[] versionNumberBytes;
   protected static final TSFileConfig config = 
TSFileDescriptor.getInstance().getConfig();
   private static final Logger logger = 
LoggerFactory.getLogger(TsFileIOWriter.class);
-
+  private static final Logger resourceLogger = 
LoggerFactory.getLogger("FileMonitor");
   static {
     magicStringBytes = BytesUtils.stringToBytes(TSFileConfig.MAGIC_STRING);
     versionNumberBytes = TSFileConfig.VERSION_NUMBER.getBytes();
@@ -94,7 +94,9 @@ public class TsFileIOWriter {
   public TsFileIOWriter(File file) throws IOException {
     this.out = new DefaultTsFileOutput(file);
     this.file = file;
-    logger.error("{} is opened.", file.getName());
+    if (resourceLogger.isInfoEnabled()) {
+      resourceLogger.info("{} is opened.", file.getName());
+    }
     startFile();
   }
 
@@ -255,7 +257,9 @@ public class TsFileIOWriter {
 
     // close file
     out.close();
-    logger.error("{} is closed.", file.getName());
+    if (resourceLogger.isInfoEnabled()) {
+      resourceLogger.error("{} is closed.", file.getName());
+    }
     canWrite = false;
     logger.info("output stream is closed");
   }

Reply via email to