ToB企服应用市场:ToB评测及商务社交产业平台

标题: java kotlin python 日志记录 [打印本页]

作者: 商道如狼道    时间: 2024-6-11 11:43
标题: java kotlin python 日志记录
Python中的日志记录
在Python项目中利用日志记录库,并限制日志文件大小为50MB,同时设置日志文件的滚动计谋,利用logging库和logging.handlers.RotatingFileHandler。以下是详细步骤:
创建一个日志设置文件,例如logging_config.py:
  1. import logging
  2. import logging.handlers
  3. def setup_logging():
  4.     logger = logging.getLogger()
  5.     logger.setLevel(logging.DEBUG)
  6.     # Console handler
  7.     console_handler = logging.StreamHandler()
  8.     console_handler.setLevel(logging.DEBUG)
  9.     console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  10.     console_handler.setFormatter(console_formatter)
  11.     logger.addHandler(console_handler)
  12.     # Rotating file handler
  13.     file_handler = logging.handlers.RotatingFileHandler(
  14.         'D:\\logs\\application.log', maxBytes=50*1024*1024, backupCount=10)
  15.     file_handler.setLevel(logging.DEBUG)
  16.     file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  17.     file_handler.setFormatter(file_formatter)
  18.     logger.addHandler(file_handler)
复制代码
在Python代码中导入并利用这个日志设置:
  1. import logging
  2. from logging_config import setup_logging
  3. # 设置日志配置
  4. setup_logging()
  5. # 创建日志记录器
  6. logger = logging.getLogger(__name__)
  7. def main():
  8.     logger.debug("这是一个调试日志")
  9.     logger.info("这是一个信息日志")
  10.     logger.warning("这是一个警告日志")
  11.     logger.error("这是一个错误日志")
  12. if __name__ == "__main__":
  13.     main()
复制代码
Kotlin中的日志记录
在Kotlin中,通常利用Logback或Log4j进行日志记录。以下是利用Logback的示例(spring boot 默认):
首先,在build.gradle`文件中添加依靠项:
  1. dependencies {
  2.     implementation "ch.qos.logback:logback-classic:1.2.3"
  3. }
复制代码
接下来,创建一个设置文件logback.xml,放在src/main/resources目次中:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  4.         <encoder>
  5.             <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
  6.         </encoder>
  7.     </appender>
  8.     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  9.         <file>logs/treevalue-robot-core.log</file>
  10.         <rollingPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  11.             <maxFileSize>50MB</maxFileSize>
  12.         </rollingPolicy>
  13.         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  14.             <maxFileSize>50MB</maxFileSize>
  15.         </triggeringPolicy>
  16.         <encoder>
  17.             <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
  18.         </encoder>
  19.     </appender>
  20.     <appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  21.         <file>logs/treevalue-robot-core.log</file>
  22.         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
  23.             <fileNamePattern>logs/treevalue-robot-core%i.log</fileNamePattern>
  24.             <minIndex>1</minIndex>
  25.             <maxIndex>100</maxIndex>
  26.         </rollingPolicy>
  27.         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  28.             <maxFileSize>50MB</maxFileSize>
  29.         </triggeringPolicy>
  30.         <encoder>
  31.             <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
  32.         </encoder>
  33.     </appender>
  34.     <root level="debug">
  35.         <appender-ref ref="CONSOLE"/>
  36.         <appender-ref ref="ROLLING_FILE"/>
  37.     </root>
  38. </configuration>
复制代码
然后,在Kotlin代码中利用日志记录:
  1. import org.slf4j.LoggerFactory
  2. class App {
  3.     private val logger = LoggerFactory.getLogger(App::class.java)
  4.     fun run() {
  5.         System.setProperty("logback.configurationFile", "src/main/resources/logback.xml")
  6.         for (i in 0..5000) {
  7.             logger.debug("这是一个调试日志")
  8.             logger.info("这是一个信息日志")
  9.             logger.warn("这是一个警告日志")
  10.             logger.error("这是一个错误日志")
  11.         }
  12.     }
  13. }
  14. fun main() {
  15.     val app = App()
  16.     app.run()
  17. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4