|
|
@@ -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
|
|
|
}
|
|
|
}
|
|
|
}
|