#56 The Logger

本文介绍了一种日志记录的配置方法,并演示了如何在控制器中发送调试信息到日志。通过示例展示了如何在 Rails 应用中启用默认的日志记录器,并自定义消息格式。
Learn all about the logger in this episode. See how to send messages to the log and how to customize it.
# ~/.irbrc
if ENV.include?('RAILS_ENV') && !Object.const_defined?('RAILS_DEFAULT_LOGGER')
require 'logger'
RAILS_DEFAULT_LOGGER = Logger.new(STDOUT)
end

# carts_controller.rb
def show
@cart = current_cart
logger.debug "Hello world! #{@cart.to_yaml}"
# debug, info, warn, error, fatal
end

# environment.rb
Rails::Initializer.run do |config|
config.active_record.colorize_logging = false
end

class Logger
def format_message(level, time, progname, msg)
"#{time.to_s(:db)} #{level} -- #{msg}\n"
end
end

# environments/production.rb
config.log_level = :debug
config.logger = Logger.new(...) # or log4r
"nacos is starting with cluster" 14:44:55,620 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.12 14:44:55,625 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - Here is a list of configurators discovered as a service, by rank: 14:44:55,625 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - org.springframework.boot.logging.logback.RootLogLevelConfigurator 14:44:55,625 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - They will be invoked in order until ExecutionStatus.DO_NOT_INVOKE_NEXT_IF_ANY is returned. 14:44:55,625 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - Constructed configurator of type class org.springframework.boot.logging.logback.RootLogLevelConfigurator 14:44:55,631 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - org.springframework.boot.logging.logback.RootLogLevelConfigurator.configure() call lasted 0 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY 14:44:55,631 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator 14:44:55,632 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator 14:44:55,634 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo] 14:44:55,635 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo] 14:44:55,635 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 3 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY 14:44:55,635 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator 14:44:55,636 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator 14:44:55,636 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 14:44:55,637 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml] 14:44:55,637 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 2 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY 14:44:55,637 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - Trying to configure with ch.qos.logback.classic.BasicConfigurator 14:44:55,639 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - Constructed configurator of type class ch.qos.logback.classic.BasicConfigurator 14:44:55,639 |-INFO in ch.qos.logback.classic.BasicConfigurator@1433046b - Setting up default configuration. 14:44:55,671 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6b5894c8 - ch.qos.logback.classic.BasicConfigurator.configure() call lasted 32 milliseconds. ExecutionStatus=NEUTRAL 14:44:56,291 |-WARN in ch.qos.logback.classic.joran.action.LevelAction - <level> element is deprecated. Near [level] on line 712 14:44:56,291 |-WARN in ch.qos.logback.classic.joran.action.LevelAction - Please use "level" attribute within <logger> or <root> elements instead. 14:44:56,326 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs" substituted for "${logPath}" 14:44:56,330 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - Registering a new ReconfigureOnChangeTask ReconfigureOnChangeTask(born:1753339496329) 14:44:56,330 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - Will scan for changes in [ConfigurationWatchList(mainURL=file:/D:/study/nacos/nacos-server-3.0.2/nacos/conf/nacos-logback.xml, fileWatchList={D:\study\nacos\nacos-server-3.0.2\nacos\conf\nacos-logback.xml}, urlWatchList=[})] 14:44:56,330 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - Setting ReconfigureOnChangeTask scanning period to 10 seconds 14:44:56,333 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [cmdb-main] 14:44:56,333 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 14:44:56,338 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/cmdb-main.log" substituted for "${nacos.home}/logs/cmdb-main.log" 14:44:56,340 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/cmdb-main.log.%d{yyyy-MM-dd}.%i" substituted for "${nacos.home}/logs/cmdb-main.log.%d{yyyy-MM-dd}.%i" 14:44:56,341 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2015999862 - setting totalSizeCap to 7 GB 14:44:56,342 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2015999862 - Archive files will be limited to [2 GB] each. 14:44:56,348 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2015999862 - No compression will be used 14:44:56,349 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2015999862 - Will use the pattern D:/study/nacos/nacos-server-3.0.2/nacos/logs/cmdb-main.log.%d{yyyy-MM-dd}.%i for the active file 14:44:56,362 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@5778826f - The date pattern is &#39;yyyy-MM-dd&#39; from file name pattern &#39;D:/study/nacos/nacos-server-3.0.2/nacos/logs/cmdb-main.log.%d{yyyy-MM-dd}.%i&#39;. 14:44:56,362 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@5778826f - Roll-over at midnight. 14:44:56,368 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@5778826f - Setting initial period to 2025-07-24T06:44:26.962Z 14:44:56,372 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2015999862 - Cleaning on start up 14:44:56,374 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - first clean up after appender initialization 14:44:56,374 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 14:44:56,375 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - Multiple periods, i.e. 32 periods, seem to have elapsed. This is expected at application start. 14:44:56,384 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - No removal attempts were made. 14:44:56,398 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[cmdb-main] - Active log file name: D:\study\nacos\nacos-server-3.0.2\nacos/logs/cmdb-main.log 14:44:56,399 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[cmdb-main] - Setting currentFileLength to 0 for D:\study\nacos\nacos-server-3.0.2\nacos\logs\cmdb-main.log 14:44:56,399 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[cmdb-main] - File property is set to [D:\study\nacos\nacos-server-3.0.2\nacos/logs/cmdb-main.log] 14:44:56,400 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [CONSOLE] 14:44:56,400 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 14:44:56,400 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 14:44:56,400 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [naming-server] 14:44:56,400 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 14:44:56,400 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-server.log" substituted for "${LOG_HOME}/naming-server.log" 14:44:56,400 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-server.log.%d{yyyy-MM-dd}.%i" substituted for "${LOG_HOME}/naming-server.log.%d{yyyy-MM-dd}.%i" 14:44:56,400 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1533330615 - setting totalSizeCap to 7 GB 14:44:56,400 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1533330615 - Archive files will be limited to [1 GB] each. 14:44:56,400 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1533330615 - No compression will be used 14:44:56,401 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1533330615 - Will use the pattern D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-server.log.%d{yyyy-MM-dd}.%i for the active file 14:44:56,401 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@4763c727 - The date pattern is &#39;yyyy-MM-dd&#39; from file name pattern &#39;D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-server.log.%d{yyyy-MM-dd}.%i&#39;. 14:44:56,401 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@4763c727 - Roll-over at midnight. 14:44:56,401 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@4763c727 - Setting initial period to 2025-07-24T06:44:29.011Z 14:44:56,401 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1533330615 - Cleaning on start up 14:44:56,402 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 14:44:56,402 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - first clean up after appender initialization 14:44:56,402 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - Multiple periods, i.e. 32 periods, seem to have elapsed. This is expected at application start. 14:44:56,402 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-server] - Active log file name: D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-server.log 14:44:56,402 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-server] - Setting currentFileLength to 7884 for D:\study\nacos\nacos-server-3.0.2\nacos\logs\naming-server.log 14:44:56,402 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-server] - File property is set to [D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-server.log] 14:44:56,402 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [async-naming-server] 14:44:56,402 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender] 14:44:56,404 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [naming-server] to ch.qos.logback.classic.AsyncAppender[async-naming-server] 14:44:56,404 |-INFO in ch.qos.logback.classic.AsyncAppender[async-naming-server] - Attaching appender named [naming-server] to AsyncAppender. 14:44:56,404 |-INFO in ch.qos.logback.classic.AsyncAppender[async-naming-server] - Setting discardingThreshold to 0 14:44:56,404 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [naming-raft] 14:44:56,404 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 14:44:56,404 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-raft.log" substituted for "${LOG_HOME}/naming-raft.log" 14:44:56,404 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-raft.log.%d{yyyy-MM-dd}.%i" substituted for "${LOG_HOME}/naming-raft.log.%d{yyyy-MM-dd}.%i" 14:44:56,404 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1917082298 - setting totalSizeCap to 3 GB 14:44:56,404 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1917082298 - Archive files will be limited to [1 GB] each. 14:44:56,404 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1917082298 - No compression will be used 14:44:56,404 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1917082298 - Will use the pattern D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-raft.log.%d{yyyy-MM-dd}.%i for the active file 14:44:56,405 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@61bcd567 - The date pattern is &#39;yyyy-MM-dd&#39; from file name pattern &#39;D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-raft.log.%d{yyyy-MM-dd}.%i&#39;. 14:44:56,405 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@61bcd567 - Roll-over at midnight. 14:44:56,405 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@61bcd567 - Setting initial period to 2025-07-24T06:44:26.974Z 14:44:56,405 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1917082298 - Cleaning on start up 14:44:56,406 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 14:44:56,406 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - first clean up after appender initialization 14:44:56,406 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - Multiple periods, i.e. 32 periods, seem to have elapsed. This is expected at application start. 14:44:56,406 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-raft] - Active log file name: D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-raft.log 14:44:56,406 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-raft] - Setting currentFileLength to 0 for D:\study\nacos\nacos-server-3.0.2\nacos\logs\naming-raft.log 14:44:56,406 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-raft] - File property is set to [D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-raft.log] 14:44:56,407 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [async-naming-raft] 14:44:56,407 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender] 14:44:56,407 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [naming-raft] to ch.qos.logback.classic.AsyncAppender[async-naming-raft] 14:44:56,407 |-INFO in ch.qos.logback.classic.AsyncAppender[async-naming-raft] - Attaching appender named [naming-raft] to AsyncAppender. 14:44:56,407 |-INFO in ch.qos.logback.classic.AsyncAppender[async-naming-raft] - Setting discardingThreshold to 0 14:44:56,407 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [naming-distro] 14:44:56,407 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 14:44:56,407 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-distro.log" substituted for "${LOG_HOME}/naming-distro.log" 14:44:56,407 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-distro.log.%d{yyyy-MM-dd}.%i" substituted for "${LOG_HOME}/naming-distro.log.%d{yyyy-MM-dd}.%i" 14:44:56,407 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@478209179 - setting totalSizeCap to 3 GB 14:44:56,407 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@478209179 - Archive files will be limited to [1 GB] each. 14:44:56,407 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@478209179 - No compression will be used 14:44:56,408 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@478209179 - Will use the pattern D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-distro.log.%d{yyyy-MM-dd}.%i for the active file 14:44:56,408 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@458342d3 - The date pattern is &#39;yyyy-MM-dd&#39; from file name pattern &#39;D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-distro.log.%d{yyyy-MM-dd}.%i&#39;. 14:44:56,408 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@458342d3 - Roll-over at midnight. 14:44:56,408 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@458342d3 - Setting initial period to 2025-07-24T06:44:26.976Z 14:44:56,409 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@478209179 - Cleaning on start up 14:44:56,409 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 14:44:56,409 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - first clean up after appender initialization 14:44:56,409 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - Multiple periods, i.e. 32 periods, seem to have elapsed. This is expected at application start. 14:44:56,409 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-distro] - Active log file name: D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-distro.log 14:44:56,409 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-distro] - Setting currentFileLength to 0 for D:\study\nacos\nacos-server-3.0.2\nacos\logs\naming-distro.log 14:44:56,409 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-distro] - File property is set to [D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-distro.log] 14:44:56,410 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [async-naming-distro] 14:44:56,410 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender] 14:44:56,410 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [naming-distro] to ch.qos.logback.classic.AsyncAppender[async-naming-distro] 14:44:56,410 |-INFO in ch.qos.logback.classic.AsyncAppender[async-naming-distro] - Attaching appender named [naming-distro] to AsyncAppender. 14:44:56,410 |-INFO in ch.qos.logback.classic.AsyncAppender[async-naming-distro] - Setting discardingThreshold to 0 14:44:56,410 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [naming-event] 14:44:56,410 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 14:44:56,410 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-event.log" substituted for "${LOG_HOME}/naming-event.log" 14:44:56,411 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-event.log.%d{yyyy-MM-dd}.%i" substituted for "${LOG_HOME}/naming-event.log.%d{yyyy-MM-dd}.%i" 14:44:56,411 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@365056339 - setting totalSizeCap to 3 GB 14:44:56,411 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@365056339 - Archive files will be limited to [1 GB] each. 14:44:56,411 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@365056339 - No compression will be used 14:44:56,411 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@365056339 - Will use the pattern D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-event.log.%d{yyyy-MM-dd}.%i for the active file 14:44:56,411 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@1252b961 - The date pattern is &#39;yyyy-MM-dd&#39; from file name pattern &#39;D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-event.log.%d{yyyy-MM-dd}.%i&#39;. 14:44:56,411 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@1252b961 - Roll-over at midnight. 14:44:56,411 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@1252b961 - Setting initial period to 2025-07-24T06:44:26.980Z 14:44:56,412 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@365056339 - Cleaning on start up 14:44:56,412 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 14:44:56,412 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - first clean up after appender initialization 14:44:56,412 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - Multiple periods, i.e. 32 periods, seem to have elapsed. This is expected at application start. 14:44:56,412 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-event] - Active log file name: D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-event.log 14:44:56,412 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-event] - Setting currentFileLength to 0 for D:\study\nacos\nacos-server-3.0.2\nacos\logs\naming-event.log 14:44:56,412 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[naming-event] - File property is set to [D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-event.log] 14:44:56,413 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [async-naming-event] 14:44:56,413 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender] 14:44:56,413 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [naming-event] to ch.qos.logback.classic.AsyncAppender[async-naming-event] 14:44:56,413 |-INFO in ch.qos.logback.classic.AsyncAppender[async-naming-event] - Attaching appender named [naming-event] to AsyncAppender. 14:44:56,413 |-INFO in ch.qos.logback.classic.AsyncAppender[async-naming-event] - Setting discardingThreshold to 0 14:44:56,413 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [naming-push] 14:44:56,413 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 14:44:56,413 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-push.log" substituted for "${LOG_HOME}/naming-push.log" 14:44:56,413 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@3f446bef - value "D:\study\nacos\nacos-server-3.0.2\nacos/logs/naming-push.log.%d{yyyy-MM-dd}.%i" substituted for "${LOG_HOME}/naming-push.log.%d{yyyy-MM-dd}.%i" 14:44:56,413 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@166536076 - setting totalSizeCap to 3 GB 14:44:56,413 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@166536076 - Archive files will be limited to [1 GB] each. 14:44:56,413 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@166536076 - No compression will be used 14:44:56,413 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@166536076 - Will use the pattern D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-push.log.%d{yyyy-MM-dd}.%i for the active file 14:44:56,413 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@56276db8 - The date pattern is &#39;yyyy-MM-dd&#39; from file name pattern &#39;D:/study/nacos/nacos-server-3.0.2/nacos/logs/naming-push.log.%d{yyyy-MM-dd}.%i&#39;. 14:44:56,413 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFileNamingAndTriggeringPolicy@56276db8 - Roll-over at midnight. 14:44:56,522 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[k8s-sync-main] - Setting currentFileLength to 0 for D:\study\nacos\nacos-server-3.0.2\nacos\logs\k8s-sync-main.log 14:44:56,522 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[k8s-sync-main] - File property is set to [D:\study\nacos\nacos-server-3.0.2\nacos/logs/k8s-sync-main.log] 14:44:56,524 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - No removal attempts were made. 14:44:56,525 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.address.main] to INFO 14:44:56,526 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.address.main] onto the JUL framework 14:44:56,526 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.address.main] to false 14:44:56,526 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [nacos-address] to Logger[com.alibaba.nacos.address.main] 14:44:56,526 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.cmdb.main] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.cmdb.main] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.cmdb.main] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [cmdb-main] to Logger[com.alibaba.nacos.cmdb.main] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.core.remote] to DEBUG 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating DEBUG level on Logger[com.alibaba.nacos.core.remote] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.core.remote] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [remote] to Logger[com.alibaba.nacos.core.remote] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.core.remote.push] to DEBUG 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating DEBUG level on Logger[com.alibaba.nacos.core.remote.push] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.core.remote.push] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [remote-push] to Logger[com.alibaba.nacos.core.remote.push] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.core.remote.digest] to DEBUG 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating DEBUG level on Logger[com.alibaba.nacos.core.remote.digest] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.core.remote.digest] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [remote-digest] to Logger[com.alibaba.nacos.core.remote.digest] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.plugin.control] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.plugin.control] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.plugin.control] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [plugin-control] to Logger[com.alibaba.nacos.plugin.control] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.plugin.control.tps] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.plugin.control.tps] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.plugin.control.tps] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [plugin-control-tps] to Logger[com.alibaba.nacos.plugin.control.tps] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.plugin.control.connection] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.plugin.control.connection] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.plugin.control.connection] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [plugin-control-connection] to Logger[com.alibaba.nacos.plugin.control.connection] 14:44:56,527 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - No removal attempts were made. 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.naming.main] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.naming.main] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.naming.main] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [async-naming-server] to Logger[com.alibaba.nacos.naming.main] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.naming.raft] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.naming.raft] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.naming.raft] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [async-naming-raft] to Logger[com.alibaba.nacos.naming.raft] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.naming.distro] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.naming.distro] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.naming.distro] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [async-naming-distro] to Logger[com.alibaba.nacos.naming.distro] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.naming.event] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.naming.event] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.naming.event] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [async-naming-event] to Logger[com.alibaba.nacos.naming.event] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.naming.push] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.naming.push] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.naming.push] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [naming-push] to Logger[com.alibaba.nacos.naming.push] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.naming.rt] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.naming.rt] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.naming.rt] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [naming-rt] to Logger[com.alibaba.nacos.naming.rt] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.naming.performance] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.naming.performance] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.naming.performance] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [naming-performance] to Logger[com.alibaba.nacos.naming.performance] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.dumpLog] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.dumpLog] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.dumpLog] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [dumpFile] to Logger[com.alibaba.nacos.config.dumpLog] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.pullLog] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.pullLog] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.pullLog] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [pullFile] to Logger[com.alibaba.nacos.config.pullLog] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.pullCheckLog] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.pullCheckLog] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.pullCheckLog] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [pullCheckFile] to Logger[com.alibaba.nacos.config.pullCheckLog] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.fatal] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.fatal] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.fatal] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [fatalFile] to Logger[com.alibaba.nacos.config.fatal] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.monitorLog] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.monitorLog] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.monitorLog] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [memoryFile] to Logger[com.alibaba.nacos.config.monitorLog] 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.clientLog] to INFO 14:44:56,527 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.clientLog] onto the JUL framework 14:44:56,527 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.clientLog] to false 14:44:56,527 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [clientLog] to Logger[com.alibaba.nacos.config.clientLog] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.notifyLog] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.notifyLog] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.notifyLog] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [notifyLog] to Logger[com.alibaba.nacos.config.notifyLog] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.traceLog] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.traceLog] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.traceLog] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [traceLog] to Logger[com.alibaba.nacos.config.traceLog] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.config.startLog] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.config.startLog] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.config.startLog] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [startLog] to Logger[com.alibaba.nacos.config.startLog] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.istio.main] to DEBUG 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating DEBUG level on Logger[com.alibaba.nacos.istio.main] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.istio.main] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [istio-main] to Logger[com.alibaba.nacos.istio.main] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.core.auth] to DEBUG 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating DEBUG level on Logger[com.alibaba.nacos.core.auth] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.core.auth] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [core-auth] to Logger[com.alibaba.nacos.core.auth] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.k8s.sync.main] to false 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating DEBUG level on Logger[com.alibaba.nacos.k8s.sync.main] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LevelModelHandler - com.alibaba.nacos.k8s.sync.main level set to DEBUG 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [k8s-sync-main] to Logger[com.alibaba.nacos.k8s.sync.main] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.core.protocol.raft] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.core.protocol.raft] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.core.protocol.raft] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [protocol-raft] to Logger[com.alibaba.nacos.core.protocol.raft] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alipay.sofa.jraft] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alipay.sofa.jraft] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alipay.sofa.jraft] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [alipay-jraft] to Logger[com.alipay.sofa.jraft] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.core.protocol.distro] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.core.protocol.distro] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.core.protocol.distro] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [protocol-distro] to Logger[com.alibaba.nacos.core.protocol.distro] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.core.cluster] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.core.cluster] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.core.cluster] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [nacos-cluster] to Logger[com.alibaba.nacos.core.cluster] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.persistence] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.persistence] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.alibaba.nacos.persistence] to false 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [nacos-persistence] to Logger[com.alibaba.nacos.persistence] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.core.listener.StartingApplicationListener] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.core.listener.StartingApplicationListener] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[com.alibaba.nacos.core.listener.StartingApplicationListener] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.common.notify.NotifyCenter] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.common.notify.NotifyCenter] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[com.alibaba.nacos.common.notify.NotifyCenter] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.sys.file.WatchFileCenter] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.sys.file.WatchFileCenter] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[com.alibaba.nacos.sys.file.WatchFileCenter] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.alibaba.nacos.common.executor.ThreadPoolManager] to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[com.alibaba.nacos.common.executor.ThreadPoolManager] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[com.alibaba.nacos.common.executor.ThreadPoolManager] 14:44:56,528 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to INFO 14:44:56,528 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@51e8e6e6 - Propagating INFO level on Logger[ROOT] onto the JUL framework 14:44:56,528 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [rootFile] to Logger[ROOT] 14:44:56,528 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - No removal attempts were made. 14:44:56,529 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@56f6d40b - End of configuration. 14:44:56,529 |-INFO in org.springframework.boot.logging.logback.SpringBootJoranConfigurator@36676c1a - Registering current configuration as safe fallback point ,--. ,--.&#39;| ,--,: : | Nacos Server 3.0.2 ,`--.&#39;`| &#39; : ,---. Running in cluster mode, All function modules | : : | | &#39; ,&#39;\ .--.--. : | \ | : ,--.--. ,---. / / | / / &#39; Pid: 61488 | : &#39; &#39;; | / \ / \. ; ,. :| : /`./ &#39; &#39; ;. ;.--. .-. | / / &#39;&#39; | |: :| : ;_ | | | \ | \__\/: . .. &#39; / &#39; | .; : \ \ `. https://nacos.io &#39; : | ; .&#39; ," .--.; |&#39; ; :__| : | `----. \ | | &#39;`--&#39; / / ,. |&#39; | &#39;.&#39;|\ \ / / /`--&#39; / &#39; : | ; : .&#39; \ : : `----&#39; &#39;--&#39;. / ; |.&#39; | , .-./\ \ / `--&#39;---&#39; &#39;---&#39; `--`---&#39; `----&#39; 2025-07-24 14:44:56,639 INFO The server IP list of Nacos is [] 2025-07-24 14:44:57,643 INFO Nacos Server is starting... 2025-07-24 14:44:58,296 WARN [WatchFileCenter] start close 2025-07-24 14:44:58,297 WARN [WatchFileCenter] start to shutdown this watcher which is watch : D:\study\nacos\nacos-server-3.0.2\nacos\conf 2025-07-24 14:44:58,297 WARN [WatchFileCenter] already closed 2025-07-24 14:44:58,297 INFO [NotifyCenter] Start destroying Publisher 2025-07-24 14:44:58,297 INFO [NotifyCenter] Completed destruction of Publisher 2025-07-24 14:44:58,297 ERROR Startup errors : org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name &#39;capacityManagementAspect&#39; defined in URL [jar:nested:/D:/study/nacos/nacos-server-3.0.2/nacos/target/nacos-server.jar/!BOOT-INF/lib/nacos-config-3.0.2.jar!/com/alibaba/nacos/config/server/aspect/CapacityManagementAspect.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name &#39;externalConfigInfoPersistServiceImpl&#39; defined in URL [jar:nested:/D:/study/nacos/nacos-server-3.0.2/nacos/target/nacos-server.jar/!BOOT-INF/lib/nacos-config-3.0.2.jar!/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalConfigInfoPersistServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name &#39;externalHistoryConfigInfoPersistServiceImpl&#39; defined in URL [jar:nested:/D:/study/nacos/nacos-server-3.0.2/nacos/target/nacos-server.jar/!BOOT-INF/lib/nacos-config-3.0.2.jar!/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalHistoryConfigInfoPersistServiceImpl.class]: Failed to instantiate [com.alibaba.nacos.config.server.service.repository.extrnal.ExternalHistoryConfigInfoPersistServiceImpl]: Constructor threw exception at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1381) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1218) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:347) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1155) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1121) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1056) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:149) at com.alibaba.nacos.bootstrap.NacosBootstrap.startCoreContext(NacosBootstrap.java:96) at com.alibaba.nacos.bootstrap.NacosBootstrap.startWithConsole(NacosBootstrap.java:84) at com.alibaba.nacos.bootstrap.NacosBootstrap.main(NacosBootstrap.java:54) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.PropertiesLauncher.main(PropertiesLauncher.java:580) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name &#39;externalConfigInfoPersistServiceImpl&#39; defined in URL [jar:nested:/D:/study/nacos/nacos-server-3.0.2/nacos/target/nacos-server.jar/!BOOT-INF/lib/nacos-config-3.0.2.jar!/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalConfigInfoPersistServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name &#39;externalHistoryConfigInfoPersistServiceImpl&#39; defined in URL [jar:nested:/D:/study/nacos/nacos-server-3.0.2/nacos/target/nacos-server.jar/!BOOT-INF/lib/nacos-config-3.0.2.jar!/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalHistoryConfigInfoPersistServiceImpl.class]: Failed to instantiate [com.alibaba.nacos.config.server.service.repository.extrnal.ExternalHistoryConfigInfoPersistServiceImpl]: Constructor threw exception at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1381) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1218) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:347) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1667) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1555) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 28 common frames omitted Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#39;externalHistoryConfigInfoPersistServiceImpl&#39; defined in URL [jar:nested:/D:/study/nacos/nacos-server-3.0.2/nacos/target/nacos-server.jar/!BOOT-INF/lib/nacos-config-3.0.2.jar!/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalHistoryConfigInfoPersistServiceImpl.class]: Failed to instantiate [com.alibaba.nacos.config.server.service.repository.extrnal.ExternalHistoryConfigInfoPersistServiceImpl]: Constructor threw exception at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1343) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1228) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:347) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1609) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1555) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 42 common frames omitted Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.config.server.service.repository.extrnal.ExternalHistoryConfigInfoPersistServiceImpl]: Constructor threw exception at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:222) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:122) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1337) ... 53 common frames omitted Caused by: java.lang.RuntimeException: java.lang.RuntimeException: [db-load-error]load jdbc.properties error at com.alibaba.nacos.persistence.datasource.DynamicDataSource.getDataSource(DynamicDataSource.java:60) at com.alibaba.nacos.config.server.service.repository.extrnal.ExternalHistoryConfigInfoPersistServiceImpl.<init>(ExternalHistoryConfigInfoPersistServiceImpl.java:76) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:196) ... 55 common frames omitted Caused by: java.lang.RuntimeException: [db-load-error]load jdbc.properties error at com.alibaba.nacos.persistence.datasource.ExternalDataSourceServiceImpl.init(ExternalDataSourceServiceImpl.java:119) at com.alibaba.nacos.persistence.datasource.DynamicDataSource.getDataSource(DynamicDataSource.java:55) ... 62 common frames omitted Caused by: java.io.IOException: java.lang.IllegalArgumentException: db.num is null at com.alibaba.nacos.persistence.datasource.ExternalDataSourceServiceImpl.reload(ExternalDataSourceServiceImpl.java:168) at com.alibaba.nacos.persistence.datasource.ExternalDataSourceServiceImpl.init(ExternalDataSourceServiceImpl.java:116) ... 63 common frames omitted Caused by: java.lang.IllegalArgumentException: db.num is null at com.alibaba.nacos.common.utils.Preconditions.checkArgument(Preconditions.java:42) at com.alibaba.nacos.persistence.datasource.ExternalDataSourceProperties.build(ExternalDataSourceProperties.java:78) at com.alibaba.nacos.persistence.datasource.ExternalDataSourceServiceImpl.reload(ExternalDataSourceServiceImpl.java:136) ... 64 common frames omitted 2025-07-24 14:44:58,299 ERROR Nacos failed to start, please see D:\study\nacos\nacos-server-3.0.2\nacos\logs\nacos.log for more details. 2025-07-24 14:44:58,327 INFO [ThreadPoolManager] Start destroying ThreadPool 2025-07-24 14:44:58,327 INFO [ThreadPoolManager] Completed destruction of ThreadPool
07-25
# dataset.py import torch from torch.utils.data import Dataset import os import numpy as np class SpikingGestureDataset(Dataset): def __init__(self, root_dir): self.root_dir = root_dir self.classes = sorted(os.listdir(root_dir)) self.file_list = [] for idx, cls in enumerate(self.classes): cls_path = os.path.join(root_dir, cls) for file in os.listdir(cls_path): self.file_list.append((os.path.join(cls_path, file), idx)) def __len__(self): return len(self.file_list) def __getitem__(self, idx): file_path, label = self.file_list[idx] data = np.load(file_path) # shape: (T, H, W) data = torch.tensor(data, dtype=torch.float32).unsqueeze(1) # shape: (T, 1, H, W) return data, label import numpy as np import os def generate_gesture_pattern(label, image_size=32, time_steps=100): gesture = np.zeros((time_steps, image_size, image_size)) if label == 0: # 中心扩散 for t in range(time_steps): center = image_size // 2 radius = min(center, int(t / time_steps * center)) for i in range(image_size): for j in range(image_size): dist = np.sqrt((i - center) ** 2 + (j - center) ** 2) if dist <= radius: gesture[t, i, j] = 1.0 elif label == 1: # 左右摆动 for t in range(time_steps): offset = int((np.sin(t * 0.1) + 1) * 8) gesture[t, :, offset:offset + 16] = 1.0 elif label == 2: # 上下摆动 for t in range(time_steps): offset = int((np.sin(t * 0.1) + 1) * 8) gesture[t, offset:offset + 16, :] = 1.0 elif label == 3: # 快速闪烁 for t in range(time_steps): if t % 10 < 5: gesture[t, :, :] = 1.0 elif label == 4: # 慢速增长 for t in range(time_steps): factor = t / time_steps gesture[t, :, :] = factor return gesture def generate_dataset(save_dir, num_classes=5, samples_per_class=50, time_steps=100): os.makedirs(save_dir, exist_ok=True) print(f"📂 创建数据目录:{save_dir}") for label in range(num_classes): class_dir = os.path.join(save_dir, f&#39;class_{label}&#39;) os.makedirs(class_dir, exist_ok=True) print(f"📁 创建类别目录:{class_dir}") for i in range(samples_per_class): data = generate_gesture_pattern(label, time_steps=time_steps) file_path = os.path.join(class_dir, f&#39;sample_{i}.npy&#39;) np.save(file_path, data) print(f"💾 保存文件:{file_path}") print("✅ 数据生成完成!") if __name__ == "__main__": generate_dataset(save_dir="./generated_gesture_data") import torch import torch.nn as nn from sinabs.layers import LIF class SpikingSNNClassifier(nn.Module): def __init__(self, num_classes=5, time_steps=100, hidden_size=128): super(SpikingSNNClassifier, self).__init__() self.time_steps = time_steps # CNN 特征提取层 self.conv1 = nn.Conv2d(1, 16, kernel_size=3, padding=1) self.lif1 = LIF(tau_mem=20.0, spike_threshold=1.0) self.conv2 = nn.Conv2d(16, 32, kernel_size=3, padding=1) self.lif2 = LIF(tau_mem=20.0, spike_threshold=1.0) self.pool = nn.AvgPool2d(2) self.flatten = nn.Flatten() self.fc1 = nn.Linear(32 * 16 * 16, hidden_size) self.lif3 = LIF(tau_mem=20.0, spike_threshold=1.0) self.fc2 = nn.Linear(hidden_size, num_classes) def reset_states(self): """ 清除 LIF 层的内部状态 """ for layer in self.children(): if hasattr(layer, &#39;reset_state&#39;): layer.reset_state() def forward(self, x): """ x shape: (B, T, C, H, W) 或 (B*T, C, H, W) """ if x.dim() == 5: # 如果是完整时间序列输入 (B, T, C, H, W) B, T = x.shape[0], x.shape[1] x = x.view(B * T, x.shape[2], x.shape[3], x.shape[4]) # 合并 batch 和 time else: # 否则假设是 (B*T, C, H, W) B = x.shape[0] // self.time_steps T = self.time_steps x1 = self.conv1(x) x1 = self.lif1(x1) x2 = self.conv2(x1) x2 = self.lif2(x2) x3 = self.pool(x2) x4 = self.flatten(x3) x5 = self.fc1(x4) x5 = self.lif3(x5) out = self.fc2(x5) # shape: (B*T, C) # 只有在原始输入是 5D 时才恢复时间步维度 if x.dim() == 4: out = out.view(B, T, -1) # shape: (B, T, C) return out import torch import torch.nn as nn import logging from torch.utils.data import DataLoader from models.snn_model import SpikingSNNClassifier from data.dataset import SpikingGestureDataset # 启用异常检测 torch.autograd.set_detect_anomaly(True) # 配置日志系统 logging.basicConfig(level=logging.INFO, format=&#39;%(asctime)s - %(levelname)s - %(message)s&#39;) logger = logging.getLogger(__name__) device = torch.device(&#39;cuda&#39; if torch.cuda.is_available() else &#39;cpu&#39;) logger.info(f"使用设备: {device}") # 参数 root_dir = &#39;./data/generated_gesture_data&#39; batch_size = 2 num_epochs = 10 learning_rate = 1e-3 time_steps = 100 # 数据加载 logger.info("开始加载数据集...") dataset = SpikingGestureDataset(root_dir) loader = DataLoader(dataset, batch_size=batch_size, shuffle=True) logger.info(f"数据集大小: {len(dataset)}, 批次大小: {batch_size}") # 模型初始化 logger.info("初始化模型...") model = SpikingSNNClassifier(num_classes=5, time_steps=time_steps).to(device) optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate) criterion = nn.CrossEntropyLoss() logger.info("模型初始化完成") # 训练循环 logger.info("开始训练...") for epoch in range(num_epochs): model.train() total_loss = 0 logger.info(f"Epoch [{epoch+1}/{num_epochs}] 开始") for batch_idx, (images, labels) in enumerate(loader): model.reset_states() # 每次前向传播前重置状态 images = images.to(device) # shape: (B, T, 1, H, W) labels = labels.to(device) B, T = images.shape[0], images.shape[1] # 直接使用原始 shape 进行 view images = images.view(B * T, 1, 32, 32) # (B*T, C, H, W) outputs = model(images) # shape: (B, T, C) # 合并时间步和 batch outputs = outputs.view(-1, outputs.size(-1)) # shape: (B*T, C) labels = labels.unsqueeze(1).expand(-1, T).reshape(-1) # shape: (B*T, ) loss = criterion(outputs, labels) optimizer.zero_grad() loss.backward() # 移除 retain_graph=True,除非需要多次反向传播 optimizer.step() total_loss += loss.item() avg_loss = total_loss / len(loader) logger.info(f"Epoch [{epoch+1}/{num_epochs}], 平均 Loss: {avg_loss:.4f}") # 保存模型 logger.info("保存模型...") torch.save(model.state_dict(), &#39;best_model.pth&#39;) logger.info("模型已保存为 best_model.pth") C:\Users\GuoHao\.conda\envs\FSL\python.exe F:\GuoHao\Desktop\pythonProject5\snn_gesture_recognition\train.py 2025-07-19 17:30:56,737 - INFO - 使用设备: cuda 2025-07-19 17:30:56,737 - INFO - 开始加载数据集... 2025-07-19 17:30:56,738 - INFO - 数据集大小: 250, 批次大小: 2 2025-07-19 17:30:56,738 - INFO - 初始化模型... 2025-07-19 17:30:57,735 - INFO - 模型初始化完成 2025-07-19 17:30:57,735 - INFO - 开始训练... 2025-07-19 17:30:57,736 - INFO - Epoch [1/10] 开始 [W ..\torch\csrc\autograd\python_anomaly_mode.cpp:104] Warning: Error detected in MultiSpikeBackward. Traceback of forward call that caused the error: File "F:\GuoHao\Desktop\pythonProject5\snn_gesture_recognition\train.py", line 56, in <module> outputs = model(images) # shape: (B, T, C) File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\torch\nn\modules\module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "F:\GuoHao\Desktop\pythonProject5\snn_gesture_recognition\models\snn_model.py", line 52, in forward x5 = self.lif3(x5) File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\torch\nn\modules\module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\sinabs\layers\lif.py", line 182, in forward spikes, state, recordings = functional.lif_forward( File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\sinabs\layers\functional\lif.py", line 69, in lif_forward spikes, state = lif_forward_single( File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\sinabs\layers\functional\lif.py", line 35, in lif_forward_single spikes = spike_fn.apply(*input_tensors, spike_threshold, surrogate_grad_fn) (function _print_stack) Traceback (most recent call last): File "F:\GuoHao\Desktop\pythonProject5\snn_gesture_recognition\train.py", line 65, in <module> loss.backward() # 移除 retain_graph=True,除非需要多次反向传播 File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\torch\tensor.py", line 245, in backward torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs) File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\torch\autograd\__init__.py", line 145, in backward Variable._execution_engine.run_backward( File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\torch\autograd\function.py", line 89, in apply return self._forward_cls.backward(self, *args) # type: ignore File "C:\Users\GuoHao\.conda\envs\FSL\lib\site-packages\sinabs\activation\spike_generation.py", line 11, in backward (v_mem,) = ctx.saved_tensors RuntimeError: Trying to backward through the graph a second time, but the saved intermediate results have already been freed. Specify retain_graph=True when calling .backward() or autograd.grad() the first time.
07-20
Hint: "..." <-- parse error at position 2533 within geometry ### The error may exist in URL [jar:nested:/home/palm/dashboard-map-api-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/mapper/AdsEntBaseInfoNanshanMappe r.xml] ### The error may involve defaultParameterMap ### The error occurred while setting parameters ### SQL: WITH polygon AS (SELECT ST_MakePolygon(ST_GeomFromText(?, 4326)) AS geom) SELECT bus_address, busines s_scope, cancel_date, city, community, declared_capital_atm, district, dom_code, ent_nam e, ent_org_code, ent_status, ent_type, ent_type_code, est_date, etl_create_time, etl_dat a_source, etl_update_time, filing_date, grid, id_num, industry, industry_category, is_de lete, safe_cast_to_numeric(lat) AS lat, legal_person, safe_cast_to_numeric(lon) AS lon, operation_period, province, register_address, registered_capital_amt, registered_no, registration_institution, revoke_da te, street, uni_credit_code, ent_id FROM ads_ent_base_info_nanshan CROSS JOIN polygon WHERE uni_credit _code LIKE CONCAT(?,&#39;%&#39;) AND ST_Within(ST_MakePoint(safe_cast_to_numeric(lon), safe_cast_to_numeric(lat) ),polygon.geom) AND ST_Intersects(ST_MakeEnvelope( ST_XMin(polygon.geom), ST_YMin(polygon.geom), ST_XMax(polygon.geom), ST_YMax (polygon.geom), 4326),ST_MakePoint(safe_cast_to_numeric(lon), safe_cast_to_numeric(lat))) ORDER BY ent_id DESC LIMIT ? OFFSET ? ### Cause: org.postgresql.util.PSQLException: 错误: parse error - invalid geometry Hint: "..." <-- parse error at position 2533 within geometry ; uncategorized SQLException; SQL state [XX000]; error code [0]; 错误: parse error - invalid geometry Hint: "..." <-- parse error at position 2533 within geometry] with root cause org.postgresql.util.PSQLException: 错误: parse error - invalid geometry Hint: "..." <-- parse error at position 2533 within geometry
09-06
源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值