Python中的日志记录
在Python项目中使用日志记录库,并限制日志文件大小为50MB,同时设置日志文件的滚动策略,使用logging库和logging.handlers.RotatingFileHandler。以下是具体步骤:
- 配置日志记录
创建一个日志配置文件,例如logging_config.py:
import logging
import logging.handlersdef setup_logging():logger = logging.getLogger()logger.setLevel(logging.DEBUG)# Console handlerconsole_handler = logging.StreamHandler()console_handler.setLevel(logging.DEBUG)console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')console_handler.setFormatter(console_formatter)logger.addHandler(console_handler)# Rotating file handlerfile_handler = logging.handlers.RotatingFileHandler('D:\\logs\\application.log', maxBytes=50*1024*1024, backupCount=10)file_handler.setLevel(logging.DEBUG)file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')file_handler.setFormatter(file_formatter)logger.addHandler(file_handler)
- 使用日志记录
在Python代码中导入并使用这个日志配置:
import logging
from logging_config import setup_logging# 设置日志配置
setup_logging()# 创建日志记录器
logger = logging.getLogger(__name__)def main():logger.debug("这是一个调试日志")logger.info("这是一个信息日志")logger.warning("这是一个警告日志")logger.error("这是一个错误日志")if __name__ == "__main__":main()
Kotlin中的日志记录
在Kotlin中,通常使用Logback或Log4j进行日志记录。以下是使用Logback的示例(spring boot 默认):
首先,在build.gradle`文件中添加依赖项:
dependencies {implementation "ch.qos.logback:logback-classic:1.2.3"
}
接下来,创建一个配置文件logback.xml,放在src/main/resources目录中:
<?xml version="1.0" encoding="UTF-8"?>
<configuration><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>logs/treevalue-robot-core.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>50MB</maxFileSize></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>50MB</maxFileSize></triggeringPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>logs/treevalue-robot-core.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>logs/treevalue-robot-core%i.log</fileNamePattern><minIndex>1</minIndex><maxIndex>100</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>50MB</maxFileSize></triggeringPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="debug"><appender-ref ref="CONSOLE"/><appender-ref ref="ROLLING_FILE"/></root></configuration>
然后,在Kotlin代码中使用日志记录:
import org.slf4j.LoggerFactoryclass App {private val logger = LoggerFactory.getLogger(App::class.java)fun run() {System.setProperty("logback.configurationFile", "src/main/resources/logback.xml")for (i in 0..5000) {logger.debug("这是一个调试日志")logger.info("这是一个信息日志")logger.warn("这是一个警告日志")logger.error("这是一个错误日志")}}
}fun main() {val app = App()app.run()
}