Browse Source

1,修复上个版本日志问题

yinxueqin 3 năm trước cách đây
mục cha
commit
5f9f3c9ea6

+ 0 - 1
app/src/main/java/cn/hgits/loglibrary/MainActivity.java

@@ -94,7 +94,6 @@ public class MainActivity extends AppCompatActivity {
                     LogUtil.appenderFlush(false);
                     break;
                 case R.id.btn_init_two_kb_size_log:
-                    LogUtil.i(TAG, "ddddddddddddddddddd");
                     initTwoKbSizeLog();
                     LogUtil.i(TAG, systemInfo(MainActivity.this));
                     LogUtil.appenderFlush(true);

+ 1 - 1
build.gradle

@@ -11,7 +11,7 @@ buildscript {
         
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.1'
+        classpath 'com.android.tools.build:gradle:7.2.2'
         classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21'
 
         // NOTE: Do not place your application dependencies here; they belong

+ 2 - 2
doc/日志解密密钥.txt

@@ -1,5 +1,5 @@
 save private key
-fc4b37a83b7b51a7d4070a404b2aeef4fbc4e6cfdce4dbacb986a00a43aba012
+05cb6f67b111a49660d706b15875b1ffc840db68e3545bd2786f02ac9a1233ef
 
 appender_open's parameter:
-0a10a144931f83492bb0c559d525bb1babb1ed23ca889eacf87ccb8357e638d77a36297599a6324861776148206c5ae8329dfb67a3b6325ea8f5920145b6182c
+94e62d97637f357fbd20f0c1f667a67c2f675e158e46015dd0cc54cb3995d0a5d468f7e98b20aec266effb61ec0a2321fb1f8c61af72bf76567921a0d8305005

+ 3 - 3
hgsoftloglibrarytwo/build.gradle

@@ -12,8 +12,8 @@ android {
     defaultConfig {
         minSdkVersion 19
         targetSdkVersion 32
-        versionCode 122011
-        versionName "1.2201.1"
+        versionCode 122013
+        versionName "1.2201.3"
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles 'consumer-rules.pro'
@@ -87,7 +87,7 @@ afterEvaluate {
                 // You can then customize attributes of the publication as shown below.
                 groupId = 'com.hgsoft.app'
                 artifactId = 'loglibrarytwo'
-                version = '1.2201.1'
+                version = '1.2201.6'
             }
         }
 

+ 27 - 0
hgsoftloglibrarytwo/src/main/java/com/hgsoft/log/CustomFormatter.kt

@@ -0,0 +1,27 @@
+package com.hgsoft.log
+
+import com.safframework.log.LoggerPrinter
+import com.safframework.log.formatter.Formatter
+
+/**
+ *
+ * <p>用途:</p>
+ *
+ * @author  yinxueqin@rd.hgits.cn
+ * 创建时间: 2022/7/21 15:02
+ * @author  更新者:
+ * 更新时间:
+ * 更新说明:
+ * @since   1.0
+ *
+ */
+object CustomFormatter: Formatter {
+
+    override fun top()    = ""
+
+    override fun middle() = ""
+
+    override fun bottom() = LoggerPrinter.BR
+
+    override fun spliter()= ""
+}

+ 4 - 3
hgsoftloglibrarytwo/src/main/java/com/hgsoft/log/LogManager.kt

@@ -51,7 +51,7 @@ object LogManager {
         }
         return FileBuilder().folderPath(logPath).fileNameGenerator(MTAFileNameGenerator(prefix, logFileMaxSize)).cleanStrategy(
             FileLastModifiedCleanStrategy(logFileSaveDays)
-        ).build()
+        ).formatter(CustomFormatter).build()
     }
 
     @JvmStatic
@@ -66,9 +66,10 @@ object LogManager {
             displayThreadInfo = false
             displayClassInfo = false
         }.apply {
+            printers().clear()
             addPrinter(filePrinter(context))
-            if (!consoleLogOpen) {
-                removePrinter(LogcatPrinter())
+            if (consoleLogOpen) {
+                addPrinter(LogcatPrinter())
             }
         }
 

+ 37 - 26
hgsoftloglibrarytwo/src/main/java/com/hgsoft/log/MTAFileNameGenerator.kt

@@ -1,6 +1,5 @@
 package com.hgsoft.log
 
-
 import com.safframework.log.printer.file.name.FileNameGenerator
 import java.io.File
 import java.text.SimpleDateFormat
@@ -32,42 +31,54 @@ class MTAFileNameGenerator(val prefix: String, val length: Long = 0)  : FileName
     override fun isFileNameChangeable() = true
 
     override fun generateFileName(logLevel: Int, tag: String, timestamp: Long, lastFileName: String): String {
+        val sdf = mLocalDateFormat.get()?:SimpleDateFormat("yyyyMMdd", Locale.CHINA)
+        val newFileNameDate =  sdf.let {
+            it.timeZone = TimeZone.getDefault()
+            it.format(Date(timestamp))
+        }
         if (lastFileName.isNotEmpty()) {
-
             val file = File(lastFileName)
-            return if (file.length() < length || length == 0L) {
-                lastFileName
+            if (!file.exists()) {
+                val newFileName = prefix + "_" + newFileNameDate + "_" + counter.incrementAndGet() + ".xlog.log"
+                return getNewFileName(newFileName, newFileNameDate)
+            }
+            val lastFileNameDate = file.name.replace(".", "_").split("_")[2]
+            return if (newFileNameDate != lastFileNameDate) {
+                prefix + "_" + newFileNameDate + ".xlog.log"
             } else {
-                val sdf = mLocalDateFormat.get()?:SimpleDateFormat("yyyyMMdd", Locale.CHINA)
-                if (counter.incrementAndGet() > 1) {
-                    prefix + "_" + sdf.let {
-
-                        it.timeZone = TimeZone.getDefault()
-                        it.format(Date(timestamp))
-                    } + "_" + counter.incrementAndGet() + ".xlog.log"
+                if (file.length() < length || length == 0L) {
+                    lastFileName
                 } else {
-                    prefix + "_" + sdf.let {
-
-                        it.timeZone = TimeZone.getDefault()
-                        it.format(Date(timestamp)) + ".xlog.log"
+                    val newFileName = if (counter.get() > 1) {
+                        prefix + "_" + newFileNameDate + "_" + counter.incrementAndGet() + ".xlog.log"
+                    } else {
+                        prefix + "_" + newFileNameDate + ".xlog.log"
                     }
+                    getNewFileName(newFileName, newFileNameDate)
                 }
             }
         } else {
-            val sdf = mLocalDateFormat.get()?:SimpleDateFormat("yyyyMMdd", Locale.CHINA)
-            return if (counter.incrementAndGet() > 1) {
-                prefix + "_" + sdf.let {
-
-                    it.timeZone = TimeZone.getDefault()
-                    it.format(Date(timestamp))
-                } + "_" + counter.incrementAndGet() + ".xlog.log"
+            val newFileName = if (counter.get() > 1) {
+                prefix + "_" + newFileNameDate + "_" + counter.incrementAndGet() + ".xlog.log"
             } else {
-                prefix + "_" + sdf.let {
+                prefix + "_" + newFileNameDate + ".xlog.log"
+            }
+            return getNewFileName(newFileName, newFileNameDate)
+        }
+    }
 
-                    it.timeZone = TimeZone.getDefault()
-                    it.format(Date(timestamp)) + ".xlog.log"
-                }
+    private fun getNewFileName(newFileName: String, timeInfo: String): String {
+        var tempNewFileName = newFileName
+        val file = File(tempNewFileName)
+        return if (file.exists()) {
+            if (file.length() < length || length == 0L) {
+                tempNewFileName
+            } else {
+                tempNewFileName = prefix + "_" + timeInfo + "_" + counter.incrementAndGet() + ".xlog.log"
+                getNewFileName(tempNewFileName, timeInfo)
             }
+        } else {
+            tempNewFileName
         }
     }
 }