From bff6b5661c3d6a2032c0172884337159241433ff Mon Sep 17 00:00:00 2001 From: lion Date: Tue, 10 Jun 2025 22:55:52 +0800 Subject: [PATCH] add --log-level=debug/info/warn/error flag, so we can close the log print during db gen --- .../org/lionsoul/ip2region/MakerTest.java | 21 +++++++++---------- .../java/org/lionsoul/ip2region/xdb/Log.java | 21 +++++++++++-------- .../org/lionsoul/ip2region/xdb/Maker.java | 4 ++-- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/maker/java/src/main/java/org/lionsoul/ip2region/MakerTest.java b/maker/java/src/main/java/org/lionsoul/ip2region/MakerTest.java index 6feca11..bfe2193 100644 --- a/maker/java/src/main/java/org/lionsoul/ip2region/MakerTest.java +++ b/maker/java/src/main/java/org/lionsoul/ip2region/MakerTest.java @@ -19,12 +19,13 @@ public class MakerTest { System.out.println("ip2region xdb maker"); System.out.println("java -jar ip2region-maker-{version}.jar [command options]"); System.out.println("options:"); - System.out.println(" --src string source ip text file path"); - System.out.println(" --dst string destination binary xdb file path"); + System.out.println(" --src string source ip text file path"); + System.out.println(" --dst string destination binary xdb file path"); + System.out.println(" --log-level string set the log level, options: debug/info/warn/error"); } public static void genDb(String[] args) throws Exception { - String srcFile = "", dstFile = ""; + String srcFile = "", dstFile = "", logLevel = "info"; int indexPolicy = IndexPolicy.Vector; for (final String r : args) { if (r.length() < 5) { @@ -48,25 +49,23 @@ public class MakerTest { srcFile = val; } else if ("dst".equals(key)) { dstFile = val; - } else if ("index".equals(key)) { - try { - indexPolicy = IndexPolicy.parse(val); - } catch (Exception e) { - System.out.println("parse policy " + e); - } + } else if ("log-level".equals(key)) { + logLevel = val; } else { System.out.printf("undefined option `%s`\n", r); return; } } - if (srcFile.length() < 1 || dstFile.length() < 1) { + if (srcFile.isEmpty() || dstFile.isEmpty()) { printHelp(args); return; } long tStart = System.currentTimeMillis(); - Maker maker = new Maker(indexPolicy, srcFile, dstFile); + final Maker maker = new Maker(indexPolicy, srcFile, dstFile); + log.infof("Generating xdb with src=%s, dst=%s, logLevel=%s\n", srcFile, dstFile, logLevel); + Maker.log.setLevel(logLevel); maker.init(); maker.start(); maker.end(); diff --git a/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Log.java b/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Log.java index d3a3856..a5297fe 100644 --- a/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Log.java +++ b/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Log.java @@ -28,7 +28,7 @@ public class Log { }; public final Class baseClass; - private static int level; + private int level = INFO; public Log(Class baseClass) { this.baseClass = baseClass; @@ -56,7 +56,7 @@ public class Log { } // level filter - if (level < Log.level) { + if (level < this.level) { return; } @@ -96,21 +96,24 @@ public class Log { printf(ERROR, format, args); } - public static void setLevel(int level) { - Log.level = level; + public Log setLevel(int level) { + this.level = level; + return this; } - public static void setLevel(String level) { + public Log setLevel(String level) { String v = level.toLowerCase(); if ("debug".equals(v)) { - Log.level = DEBUG; + this.level = DEBUG; } else if ("info".equals(v)) { - Log.level = INFO; + this.level = INFO; } else if ("warn".equals(v)) { - Log.level = WARN; + this.level = WARN; } else if ("error".equals(v)) { - Log.level = ERROR; + this.level = ERROR; } + + return this; } } \ No newline at end of file diff --git a/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java b/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java index 496109c..7f3e107 100644 --- a/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java +++ b/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java @@ -68,7 +68,7 @@ public class Maker { public static final int SegmentIndexSize = 14; public static final int VectorIndexLength = VectorIndexRows * VectorIndexCols * VectorIndexSize; - private static final Log log = Log.getLogger(Maker.class); + public static final Log log = Log.getLogger(Maker.class); // source text file handle private final File srcFile; @@ -199,7 +199,7 @@ public class Maker { // start to make the binary file public void start() throws Exception { - if (segments.size() == 0) { + if (segments.isEmpty()) { throw new Exception("empty segment list"); }