mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 22:27:31 +00:00
feat(logging): 支持通过参数控制日志输出级别.
通过添加新的 -D 参数 `scalabot.log.level`, 使得用户可以根据需要, 调整日志输出级别, 通过日志来自行(或协助开发者)排查问题, 对于与网络有关的 Debug 级别日志, 则由 `scalabot.log.network.verbose` 参数进行控制; 另外, 由于开发过程中可通过该参数修改日志级别, 因此移除 `logback-test.xml` 文件.
This commit is contained in:
parent
30a2cb34d5
commit
34d9ece6d7
@ -12,6 +12,7 @@ import org.eclipse.aether.repository.Authentication
|
|||||||
import org.eclipse.aether.repository.Proxy
|
import org.eclipse.aether.repository.Proxy
|
||||||
import org.eclipse.aether.repository.RemoteRepository
|
import org.eclipse.aether.repository.RemoteRepository
|
||||||
import org.eclipse.aether.repository.RepositoryPolicy
|
import org.eclipse.aether.repository.RepositoryPolicy
|
||||||
|
import org.slf4j.event.Level
|
||||||
import org.telegram.telegrambots.bots.DefaultBotOptions
|
import org.telegram.telegrambots.bots.DefaultBotOptions
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
@ -248,6 +249,34 @@ internal class LogDirectorySupplier : PropertyDefinerBase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class LogLevelSupplier : PropertyDefinerBase() {
|
||||||
|
override fun getPropertyValue(): String {
|
||||||
|
val property = System.getProperty("scalabot.log.level", System.getenv("BOT_LOG_LEVEL"))
|
||||||
|
val level = if (property != null) {
|
||||||
|
try {
|
||||||
|
Level.valueOf(property.uppercase())
|
||||||
|
} catch (e: IllegalArgumentException) {
|
||||||
|
addWarn("Invalid log level: `$property`, the log will be output using the Info log level.")
|
||||||
|
Level.INFO
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Level.INFO
|
||||||
|
}
|
||||||
|
return level.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class NetworkVerboseLogSupplier : PropertyDefinerBase() {
|
||||||
|
override fun getPropertyValue(): String {
|
||||||
|
val propertyValue = System.getProperty("scalabot.log.network.verbose", "false")
|
||||||
|
return if (propertyValue.toBoolean()) {
|
||||||
|
"DEBUG"
|
||||||
|
} else {
|
||||||
|
"INFO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal object Const {
|
internal object Const {
|
||||||
val config = loadAppConfig()
|
val config = loadAppConfig()
|
||||||
const val METRICS_NAMESPACE = "scalabot"
|
const val METRICS_NAMESPACE = "scalabot"
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<included>
|
<included>
|
||||||
<define name="DATA_LOGS" class="net.lamgc.scalabot.LogDirectorySupplier"/>
|
<define name="DATA_LOGS" class="net.lamgc.scalabot.LogDirectorySupplier"/>
|
||||||
|
<define name="LOG_LEVEL" class="net.lamgc.scalabot.LogLevelSupplier"/>
|
||||||
|
<define name="NETWORK_LOG_LEVEL" class="net.lamgc.scalabot.NetworkVerboseLogSupplier"/>
|
||||||
|
|
||||||
<appender name="STD_OUT" class="ch.qos.logback.core.ConsoleAppender">
|
<appender name="STD_OUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
<encoder>
|
<encoder>
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
<configuration scan="false" debug="false">
|
|
||||||
<include resource="base-logback.xml"/>
|
|
||||||
|
|
||||||
<logger name="org.apache.http" level="INFO"/>
|
|
||||||
<logger name="org.eclipse.aether.internal.impl.DefaultTransporterProvider" level="INFO"/>
|
|
||||||
<logger name="org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider" level="INFO"/>
|
|
||||||
<logger name="org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManager" level="INFO"/>
|
|
||||||
<logger name="org.telegram.telegrambots.facilities.proxysocketfactorys" level="INFO"/>
|
|
||||||
<logger name="org.eclipse.aether.internal.impl.DefaultUpdateCheckManager" level="INFO"/>
|
|
||||||
|
|
||||||
<root level="DEBUG">
|
|
||||||
<appender-ref ref="FILE_OUT"/>
|
|
||||||
<appender-ref ref="STD_ERR"/>
|
|
||||||
<appender-ref ref="STD_OUT"/>
|
|
||||||
</root>
|
|
||||||
</configuration>
|
|
@ -1,7 +1,14 @@
|
|||||||
<configuration scan="false" debug="false">
|
<configuration scan="false" debug="false">
|
||||||
<include resource="base-logback.xml"/>
|
<include resource="base-logback.xml"/>
|
||||||
|
|
||||||
<root level="INFO">
|
<logger name="org.apache.http" level="${NETWORK_LOG_LEVEL}"/>
|
||||||
|
<logger name="org.eclipse.aether.internal.impl.DefaultTransporterProvider" level="${NETWORK_LOG_LEVEL}"/>
|
||||||
|
<logger name="org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider" level="${NETWORK_LOG_LEVEL}"/>
|
||||||
|
<logger name="org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManager" level="${NETWORK_LOG_LEVEL}"/>
|
||||||
|
<logger name="org.telegram.telegrambots.facilities.proxysocketfactorys" level="${NETWORK_LOG_LEVEL}"/>
|
||||||
|
<logger name="org.eclipse.aether.internal.impl.DefaultUpdateCheckManager" level="${NETWORK_LOG_LEVEL}"/>
|
||||||
|
|
||||||
|
<root level="${LOG_LEVEL}">
|
||||||
<appender-ref ref="FILE_OUT"/>
|
<appender-ref ref="FILE_OUT"/>
|
||||||
<appender-ref ref="STD_ERR"/>
|
<appender-ref ref="STD_ERR"/>
|
||||||
<appender-ref ref="STD_OUT"/>
|
<appender-ref ref="STD_OUT"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user