java kotlin python 日志记录

Python中的日志记录

在Python项目中使用日志记录库,并限制日志文件大小为50MB,同时设置日志文件的滚动策略,使用logging库和logging.handlers.RotatingFileHandler。以下是具体步骤:

  1. 配置日志记录

创建一个日志配置文件,例如logging_config.py:

import logging
import logging.handlers

def setup_logging():
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)

    # Console handler
    console_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 handler
    file_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)
  1. 使用日志记录

在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.LoggerFactory

class 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()
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值