Browse Source

Set log level in runtime (#543)

Signed-off-by: yhmo <yihua.mo@zilliz.com>
groot 2 years ago
parent
commit
d276665eef

+ 3 - 1
examples/main/java/io/milvus/HighLevelExample.java

@@ -205,7 +205,7 @@ public class HighLevelExample {
                 .withCollectionName(COLLECTION_NAME)
                 .withVectors(generateFloatVector())
                 .withFilter(filter)
-                .withLimit(100)
+                .withLimit(100L)
                 .withOffset(0L)
                 .withOutputFields(Lists.newArrayList("int32", "int64"))
                 .build();
@@ -219,6 +219,8 @@ public class HighLevelExample {
     }
 
     private R<QueryResponse> querySimple(String filter) {
+        milvusClient.flush(FlushParam.newBuilder().addCollectionName(COLLECTION_NAME).build());
+
         System.out.println("========== high level query ==========");
         QuerySimpleParam querySimpleParam = QuerySimpleParam.newBuilder()
                 .withCollectionName(COLLECTION_NAME)

+ 18 - 1
examples/main/java/io/milvus/SimpleExample.java

@@ -43,6 +43,9 @@ public class SimpleExample {
                 .withPort(19530)
                 .build());
 
+        // set log level, only show errors
+        milvusClient.setLogLevel(LogLevel.Error);
+
         // Define fields
         List<FieldType> fieldsSchema = Arrays.asList(
                 FieldType.newBuilder()
@@ -80,7 +83,17 @@ public class SimpleExample {
                 .withMetricType(MetricType.L2)
                 .build());
         if (ret.getStatus() != R.Status.Success.getCode()) {
-            throw new RuntimeException("Failed to create index! Error: " + ret.getMessage());
+            throw new RuntimeException("Failed to create index on vector field! Error: " + ret.getMessage());
+        }
+
+        // Specify an index type on the varchar field.
+        ret = milvusClient.createIndex(CreateIndexParam.newBuilder()
+                .withCollectionName(COLLECTION_NAME)
+                .withFieldName(TITLE_FIELD)
+                .withIndexType(IndexType.TRIE)
+                .build());
+        if (ret.getStatus() != R.Status.Success.getCode()) {
+            throw new RuntimeException("Failed to create index on varchar field! Error: " + ret.getMessage());
         }
 
         // Call loadCollection() to enable automatically loading data into memory for searching
@@ -88,6 +101,8 @@ public class SimpleExample {
                 .withCollectionName(COLLECTION_NAME)
                 .build());
 
+        System.out.println("Collection created");
+
         // Insert 10 records into the collection
         List<JSONObject> rows = new ArrayList<>();
         for (long i = 1L; i <= 10; ++i) {
@@ -114,6 +129,8 @@ public class SimpleExample {
                 .addCollectionName(COLLECTION_NAME)
                 .build());
 
+        System.out.println("10 entities inserted");
+
         // Construct a vector to search top5 similar records, return the book title for us.
         // This vector is equal to the No.3 record, we suppose the No.3 record is the most similar.
         List<Float> vector = Arrays.asList(3.0f, 3.0f, 3.0f, 3.0f);

+ 15 - 9
src/main/java/io/milvus/client/AbstractMilvusGrpcClient.java

@@ -31,10 +31,7 @@ import io.milvus.common.utils.VectorUtils;
 import io.milvus.exception.*;
 import io.milvus.grpc.*;
 import io.milvus.grpc.ObjectEntity;
-import io.milvus.param.Constant;
-import io.milvus.param.ParamUtils;
-import io.milvus.param.R;
-import io.milvus.param.RpcStatus;
+import io.milvus.param.*;
 import io.milvus.param.alias.*;
 import io.milvus.param.bulkinsert.*;
 import io.milvus.param.collection.*;
@@ -64,7 +61,8 @@ import java.util.function.Function;
 
 public abstract class AbstractMilvusGrpcClient implements MilvusClient {
 
-    private static final Logger logger = LoggerFactory.getLogger(AbstractMilvusGrpcClient.class);
+    protected static final Logger logger = LoggerFactory.getLogger(AbstractMilvusGrpcClient.class);
+    protected LogLevel logLevel = LogLevel.Info;
 
     protected abstract MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub();
 
@@ -3044,18 +3042,26 @@ public abstract class AbstractMilvusGrpcClient implements MilvusClient {
 
     ///////////////////// Log Functions//////////////////////
     private void logDebug(String msg, Object... params) {
-        logger.debug(msg, params);
+        if (logLevel.ordinal() <= LogLevel.Debug.ordinal()) {
+            logger.debug(msg, params);
+        }
     }
 
     private void logInfo(String msg, Object... params) {
-        logger.info(msg, params);
+        if (logLevel.ordinal() <= LogLevel.Info.ordinal()) {
+            logger.info(msg, params);
+        }
     }
 
     private void logWarning(String msg, Object... params) {
-        logger.warn(msg, params);
+        if (logLevel.ordinal() <= LogLevel.Warning.ordinal()) {
+            logger.warn(msg, params);
+        }
     }
 
     private void logError(String msg, Object... params) {
-        logger.error(msg, params);
+        if (logLevel.ordinal() <= LogLevel.Error.ordinal()) {
+            logger.error(msg, params);
+        }
     }
 }

+ 6 - 0
src/main/java/io/milvus/client/MilvusServiceClient.java

@@ -24,6 +24,7 @@ import io.grpc.stub.MetadataUtils;
 import io.milvus.grpc.MilvusServiceGrpc;
 import io.milvus.param.ConnectParam;
 
+import io.milvus.param.LogLevel;
 import io.milvus.param.R;
 import io.milvus.param.RpcStatus;
 import lombok.NonNull;
@@ -65,6 +66,11 @@ public class MilvusServiceClient extends AbstractMilvusGrpcClient {
         futureStub = MilvusServiceGrpc.newFutureStub(channel);
     }
 
+    // set log level in runtime
+    public void setLogLevel(LogLevel level) {
+        logLevel = level;
+    }
+
     @Override
     protected MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub() {
         if (this.rpcDeadlineMs > 0) {

+ 8 - 0
src/main/java/io/milvus/param/LogLevel.java

@@ -0,0 +1,8 @@
+package io.milvus.param;
+
+public enum LogLevel {
+    Debug,
+    Info,
+    Warning,
+    Error,
+}