1b3a3667创建于 2025年7月30日历史提交
/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
 * This source file is part of the Cangjie project, licensed under Apache-2.0
 * with Runtime Library Exception.
 *
 * See https://cangjie-lang.cn/pages/LICENSE for license information.
 */

package stdx.net.http

import std.console.Console
import std.env.*
import stdx.logger.SimpleLogger
import stdx.log.*

func mutexLogger(): Logger {
    let l = SimpleLogger(getStdOut())
    return l
}

func httpLog(logger: Logger, level: LogLevel, message: String, attrs: Array<Attr>) {
    let msg = match (ThreadContext.connId) {
        case Some(connId) => "[thread#${Thread.currentThread.id}][conn#${connId}] ${message}"
        case None => "[thread#${Thread.currentThread.id}] ${message}"
    }
    logger.log(level, msg, attrs)
}

func httpLogFatal(logger: Logger, message: String, attrs: Array<Attr>) {
    httpLog(logger, LogLevel.FATAL, message, attrs)
}

func httpLogError(logger: Logger, message: String, attrs: Array<Attr>) {
    httpLog(logger, LogLevel.ERROR, message, attrs)
}

func httpLogWarn(logger: Logger, message: String, attrs: Array<Attr>) {
    httpLog(logger, LogLevel.WARN, message, attrs)
}

func httpLogInfo(logger: Logger, message: String, attrs: Array<Attr>) {
    httpLog(logger, LogLevel.INFO, message, attrs)
}

func httpLogDebug(logger: Logger, message: String, attrs: Array<Attr>) {
    httpLog(logger, LogLevel.DEBUG, message, attrs)
}

func httpLogTrace(logger: Logger, message: String, attrs: Array<Attr>) {
    httpLog(logger, LogLevel.TRACE, message, attrs)
}