Log to file cleanup
This commit is contained in:
parent
7129b79785
commit
92970bb812
@ -16,36 +16,23 @@ import java.util.concurrent.LinkedBlockingQueue
|
|||||||
/**
|
/**
|
||||||
* Log [Printer] using file system. When print a log, it will print it to the specified file.
|
* Log [Printer] using file system. When print a log, it will print it to the specified file.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
* Use the [Builder] to construct a [EnhancedFilePrinter] object.
|
* Use the [Builder] to construct a [EnhancedFilePrinter] object.
|
||||||
|
*
|
||||||
|
* @param folderPath The folder path of log file.
|
||||||
|
* @param fileNameGenerator the file name generator for log file.
|
||||||
|
* @param backupStrategy the backup strategy for log file.
|
||||||
|
* @param cleanStrategy The clean strategy for log file.
|
||||||
|
* @param flattener The flattener when print a log.
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
class EnhancedFilePrinter internal constructor(builder: Builder) : Printer {
|
class EnhancedFilePrinter internal constructor(
|
||||||
/**
|
private val folderPath: String,
|
||||||
* The folder path of log file.
|
private val fileNameGenerator: FileNameGenerator,
|
||||||
*/
|
private val backupStrategy: BackupStrategy,
|
||||||
private val folderPath: String
|
private val cleanStrategy: CleanStrategy,
|
||||||
|
|
||||||
/**
|
|
||||||
* The file name generator for log file.
|
|
||||||
*/
|
|
||||||
private val fileNameGenerator: FileNameGenerator
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The backup strategy for log file.
|
|
||||||
*/
|
|
||||||
private val backupStrategy: BackupStrategy
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The clean strategy for log file.
|
|
||||||
*/
|
|
||||||
private val cleanStrategy: CleanStrategy
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The flattener when print a log.
|
|
||||||
*/
|
|
||||||
private val flattener: Flattener2
|
private val flattener: Flattener2
|
||||||
|
) : Printer {
|
||||||
/**
|
/**
|
||||||
* Log writer.
|
* Log writer.
|
||||||
*/
|
*/
|
||||||
@ -126,37 +113,28 @@ class EnhancedFilePrinter internal constructor(builder: Builder) : Printer {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Builder for [EnhancedFilePrinter].
|
* Builder for [EnhancedFilePrinter].
|
||||||
*/
|
|
||||||
class Builder
|
|
||||||
/**
|
|
||||||
* Construct a builder.
|
|
||||||
*
|
|
||||||
* @param folderPath the folder path of log file
|
* @param folderPath the folder path of log file
|
||||||
*/(
|
*/
|
||||||
/**
|
class Builder(private val folderPath: String) {
|
||||||
* The folder path of log file.
|
|
||||||
*/
|
|
||||||
val folderPath: String,
|
|
||||||
) {
|
|
||||||
/**
|
/**
|
||||||
* The file name generator for log file.
|
* The file name generator for log file.
|
||||||
*/
|
*/
|
||||||
var fileNameGenerator: FileNameGenerator? = null
|
private var fileNameGenerator: FileNameGenerator? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The backup strategy for log file.
|
* The backup strategy for log file.
|
||||||
*/
|
*/
|
||||||
var backupStrategy: BackupStrategy? = null
|
private var backupStrategy: BackupStrategy? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The clean strategy for log file.
|
* The clean strategy for log file.
|
||||||
*/
|
*/
|
||||||
var cleanStrategy: CleanStrategy? = null
|
private var cleanStrategy: CleanStrategy? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The flattener when print a log.
|
* The flattener when print a log.
|
||||||
*/
|
*/
|
||||||
var flattener: Flattener2? = null
|
private var flattener: Flattener2? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the file name generator for log file.
|
* Set the file name generator for log file.
|
||||||
@ -209,27 +187,15 @@ class EnhancedFilePrinter internal constructor(builder: Builder) : Printer {
|
|||||||
* @return the built configured [EnhancedFilePrinter] object
|
* @return the built configured [EnhancedFilePrinter] object
|
||||||
*/
|
*/
|
||||||
fun build(): EnhancedFilePrinter {
|
fun build(): EnhancedFilePrinter {
|
||||||
fillEmptyFields()
|
val fileNameGenerator = fileNameGenerator ?: DefaultsFactory.createFileNameGenerator()
|
||||||
return EnhancedFilePrinter(this)
|
val backupStrategy = backupStrategy ?: DefaultsFactory.createBackupStrategy()
|
||||||
}
|
val cleanStrategy = cleanStrategy ?: DefaultsFactory.createCleanStrategy()
|
||||||
|
val flattener = flattener ?: DefaultsFactory.createFlattener2()
|
||||||
private fun fillEmptyFields() {
|
return EnhancedFilePrinter(folderPath, fileNameGenerator, backupStrategy, cleanStrategy, flattener)
|
||||||
if (fileNameGenerator == null) {
|
|
||||||
fileNameGenerator = DefaultsFactory.createFileNameGenerator()
|
|
||||||
}
|
|
||||||
if (backupStrategy == null) {
|
|
||||||
backupStrategy = DefaultsFactory.createBackupStrategy()
|
|
||||||
}
|
|
||||||
if (cleanStrategy == null) {
|
|
||||||
cleanStrategy = DefaultsFactory.createCleanStrategy()
|
|
||||||
}
|
|
||||||
if (flattener == null) {
|
|
||||||
flattener = DefaultsFactory.createFlattener2()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class LogItem(
|
private data class LogItem(
|
||||||
var timeMillis: Long,
|
var timeMillis: Long,
|
||||||
var level: Int,
|
var level: Int,
|
||||||
var tag: String,
|
var tag: String,
|
||||||
@ -392,13 +358,7 @@ class EnhancedFilePrinter internal constructor(builder: Builder) : Printer {
|
|||||||
private const val USE_WORKER = true
|
private const val USE_WORKER = true
|
||||||
}
|
}
|
||||||
|
|
||||||
/*package*/
|
|
||||||
init {
|
init {
|
||||||
folderPath = builder.folderPath
|
|
||||||
fileNameGenerator = builder.fileNameGenerator!!
|
|
||||||
backupStrategy = builder.backupStrategy!!
|
|
||||||
cleanStrategy = builder.cleanStrategy!!
|
|
||||||
flattener = builder.flattener!!
|
|
||||||
writer = Writer()
|
writer = Writer()
|
||||||
if (USE_WORKER) {
|
if (USE_WORKER) {
|
||||||
worker = Worker()
|
worker = Worker()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user