class Logger

public abstract class Logger <: Resource {
    public mut open prop level: LogLevel
    public open func withAttrs(attrs: Array<Attr>): Logger
    public open func log(record: LogRecord): Unit
    public func enabled(level: LogLevel): Bool
    public open func log(level: LogLevel, message: String, attrs: Array<Attr>): Unit
    public open func log(level: LogLevel, message: () -> String, attrs: Array<Attr>): Unit
    public func fatal(message: String, attrs: Array<Attr>): Unit
    public func fatal(message: () -> String, attrs: Array<Attr>): Unit
    public func error(message: String, attrs: Array<Attr>): Unit
    public func error(message: () -> String, attrs: Array<Attr>): Unit
    public func warn(message: String, attrs: Array<Attr>): Unit
    public func warn(message: () -> String, attrs: Array<Attr>): Unit
    public func info(message: String, attrs: Array<Attr>): Unit
    public func info(message: () -> String, attrs: Array<Attr>): Unit
    public func debug(message: String, attrs: Array<Attr>): Unit
    public func debug(message: () -> String, attrs: Array<Attr>): Unit
    public func trace(message: String, attrs: Array<Attr>): Unit
    public func trace(message: () -> String, attrs: Array<Attr>): Unit
}

功能:此抽象类提供基础的日志打印和管理功能。

父类型:

prop level

public mut open prop level: LogLevel

功能:获取和修改日志打印级别。

类型:LogLevel

func debug(String, Array<Attr>)

public func debug(message: String, attrs: Array<Attr>): Unit

功能:打印 DEBUG 级别的日志的便捷函数。

参数:

  • message: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func debug(() -> String, Array<Attr>)

public func debug(message: () -> String, attrs: Array<Attr>): Unit

功能:打印 DEBUG 级别的日志的便捷函数。

参数:

  • message: () -> String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func enabled(LogLevel)

public func enabled(level: LogLevel): Bool

功能:确定是否记录指定日志级别的日志消息。

这个函数允许调用者提前判断日志是否会被丢弃,以避免耗时的日志消息参数计算。

参数:

返回值:

  • Bool - 如果指定的日志级别处于使能状态,则返回 true;否则,返回 false

func error(String, Array<Attr>)

public func error(message: String, attrs: Array<Attr>): Unit

功能:打印 ERROR 级别的日志的便捷函数。

参数:

  • message: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func error(() -> String, Array<Attr>)

public func error(message: () -> String, attrs: Array<Attr>): Unit

功能:打印 ERROR 级别的日志的便捷函数。

参数:

  • message: () -> String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func fatal(String, Array<Attr>)

public func fatal(message: String, attrs: Array<Attr>): Unit

功能:打印 FATAL 级别的日志的便捷函数。

参数:

  • message: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func fatal(() -> String, Array<Attr>)

public func fatal(message: () -> String, attrs: Array<Attr>): Unit

功能:打印 FATAL 级别的日志的便捷函数。

参数:

  • message: () -> String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func info(String, Array<Attr>)

public func info(message: String, attrs: Array<Attr>): Unit

功能:打印 INFO 级别的日志的便捷函数。

参数:

  • message: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func info(() -> String, Array<Attr>)

public func info(message: () -> String, attrs: Array<Attr>): Unit

功能:打印 INFO 级别的日志的便捷函数。

参数:

  • message: () -> String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func log(LogLevel, String, Array<Attr>)

public open func log(level: LogLevel, message: String, attrs: Array<Attr>): Unit

功能:打印日志的通用函数,需指定日志级别。

参数:

  • level: LogLevel - 日志级别。
  • message: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func log(LogLevel, () -> String, Array<Attr>)

public open func log(level: LogLevel, message: () -> String, attrs: Array<Attr>): Unit

功能:打印日志的通用函数,需指定日志级别。

参数:

  • level: LogLevel - 日志级别。
  • message: () -> String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func log(LogRecord)

public open func log(record: LogRecord): Unit

功能:打印日志的通用函数。

参数:

func trace(String, Array<Attr>)

public func trace(message: String, attrs: Array<Attr>): Unit

功能:打印 TRACE 级别的日志的便捷函数。

参数:

  • message: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func trace(() -> String, Array<Attr>)

public func trace(message: () -> String, attrs: Array<Attr>): Unit

功能:打印 TRACE 级别的日志的便捷函数。

参数:

  • message: () -> String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func warn(String, Array<Attr>)

public func warn(message: String, attrs: Array<Attr>): Unit

功能:打印 WARN 级别的日志的便捷函数。

参数:

  • message: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func warn(() -> String, Array<Attr>)

public func warn(message: () -> String, attrs: Array<Attr>): Unit

功能:打印 WARN 级别的日志的便捷函数。

参数:

  • message: () -> String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func withAttrs(Array<Attr>)

public open func withAttrs(attrs: Array<Attr>): Logger

功能:创建当前对象的副本,新的副本会包含指定的属性。

参数:

  • attrs: Array<Attr> - 日志数据键值对属性。

返回值:

class LogRecord

public class LogRecord {
    public init(time: DateTime, level: LogLevel, msg: String, attrs: Array<Attr>)
    public prop time: DateTime
    public prop level: LogLevel
    public mut prop message: String
    public mut prop attrs: Array<Attr>
    public func clone(): LogRecord
}

功能:日志消息的“负载”。

记录结构作为参数传递给 Logger 类的 log方法。日志提供者处理这些结构以显示日志消息。记录是由日志对象自动创建,因此日志用户看不到。

init(DateTime, LogLevel, String, Array<Attr>)

public init(time: DateTime, level: LogLevel, msg: String, attrs: Array<Attr>)

功能:创建一个 LogRecord 实例,指定时间戳,日志打印级别,日志消息和日志数据键值对。

参数:

  • time: DateTime - 记录日志时的时间戳
  • level: LogLevel - 日志级别。
  • msg: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

prop attrs

public mut prop attrs: Array<Attr>

功能:获取或设置日志数据键值对。

类型:Array<Attr>

prop level

public prop level: LogLevel

功能:获取日志打印级别,只有级别小于等于该值的日志会被打印。

类型:LogLevel

prop message

public mut prop message: String

功能:获取或设置日志消息。

类型:String

prop time

public prop time: DateTime

功能:获取日志打印时的时间戳。

类型:DateTime

func clone()

public func clone(): LogRecord

功能:创建当前对象的副本。

返回值:

class LogWriter

public abstract class LogWriter {
    public func writeNone(): Unit
    public func writeInt(v: Int64): Unit
    public func writeUInt(v: UInt64): Unit
    public func writeBool(v: Bool): Unit
    public func writeFloat(v: Float64): Unit
    public func writeString(v: String): Unit
    public func writeDateTime(v: DateTime): Unit
    public func writeDuration(v: Duration): Unit
    public func writeKey(v: String): Unit
    public func writeValue(v: LogValue): Unit
    public func startArray(): Unit
    public func endArray(): Unit
    public func startObject(): Unit
    public func endObject(): Unit
}

功能:LogWriter 提供了将仓颉对象序列化成日志输出目标的能力。

LogWriter 需要和 interface LogValue 搭配使用,LogWriter 可以通过 writeValue 系列方法来将实现了 LogValue 接口的类型写入到日志输出目标中。

func endArray()

public func endArray(): Unit

功能:结束序列化当前的 LogValue 数组。

异常:

func endObject()

public func endObject(): Unit

功能:结束序列化当前的 LogValue object。

异常:

func startArray()

public func startArray(): Unit

功能:开始序列化一个新的 LogValue 数组,每一个 startArray 都必须有一个 endArray 对应。

异常:

func startObject()

public func startObject(): Unit

功能:开始序列化一个新的 LogValue object,每一个 startObject 都必须有一个 endObject 对应。

异常:

func writeBool(Bool)

public func writeBool(v: Bool): Unit

功能:向日志输出目标中写入 Bool 值。

参数:

异常:

func writeFloat(Float64)

public func writeFloat(v: Float64): Unit

功能:向日志输出目标中写入 Float64 值。

参数:

异常:

func writeDateTime(DateTime)

public func writeDateTime(v: DateTime): Unit

功能:向日志输出目标中写入 DateTime 值。

参数:

异常:

func writeDuration(Duration)

public func writeDuration(v: Duration): Unit

功能:向日志输出目标中写入 Duration 值。

参数:

异常:

func writeException(Exception)

public func writeException(v: Exception): Unit

功能:向日志输出目标中写入 Exception 值。

参数:

异常:

func writeInt(Int64)

public func writeInt(v: Int64): Unit

功能:向日志输出目标中写入 Int64 值。

参数:

异常:

func writeKey(String)

public func writeKey(v: String): Unit

功能:向日志输出目标中写入 name。

参数:

  • v: String - 待写入的 Key 值。

异常:

func writeNone()

public func writeNone(): Unit

功能:向日志输出目标中写入 None,具体写成什么格式由 Logger 的提供者自行决定。

异常:

func writeString(String)

public func writeString(v: String): Unit

功能:向日志输出目标中写入 String 值。

参数:

异常:

func writeValue(LogValue)

public func writeValue(v: LogValue): Unit

功能:将实现了 LogValue 接口的类型写入到日志输出目标中。该接口会调用 LogValuewriteTo 方法向日志输出目标中写入数据。

log 包已经为基础类型 Int64Float64BoolString 类型扩展实现了 LogValue,并且为 DateTimeDurationCollection 类型 ArrayHashMapTreeMap 以及 Option<T> 扩展实现了 LogValue

参数:

异常:

class NoopLogger

public class NoopLogger <: Logger {
    public init()
    public prop level: LogLevel
    public func log(record: LogRecord): Unit
    public func log(level: LogLevel, message: String, attrs: Array<Attr>): Unit
    public func log(level: LogLevel, message: () -> String, attrs: Array<Attr>): Unit
    public func withAttrs(attrs: Array<Attr>): Logger
    public func isClosed(): Bool
    public func close(): Unit
}

功能:Logger 的 NO-OP(无操作)实现,会丢弃所有的日志。

父类型:

init()

public init()

功能:创建一个 NoopLogger 实例。

prop level

public mut prop level: LogLevel

功能:永远只能获取到 OFF 日志打印级别,设置日志打印级别不会生效。

类型:LogLevel

func close()

public func close(): Unit

功能:NOOP 实现。

func isClosed()

public func isClosed(): Bool

功能:NOOP 实现。

返回值:

func log(LogLevel, String, Array<Attr>)

public func log(level: LogLevel, message: String, attrs: Array<Attr>): Unit

功能:NOOP 实现。

参数:

  • level: LogLevel - 日志级别。
  • message: String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func log(LogLevel, () -> String, Array<Attr>)

public func log(level: LogLevel, message: () -> String, attrs: Array<Attr>): Unit

功能:NOOP 实现。

参数:

  • level: LogLevel - 日志级别。
  • message: () -> String - 日志消息。
  • attrs: Array<Attr> - 日志数据键值对。

func log(LogRecord)

public func log(record: LogRecord): Unit

功能:NOOP 实现。

参数:

func withAttrs(Array<Attr>)

public func withAttrs(attrs: Array<Attr>): Logger

功能:NOOP 实现。

参数:

  • attrs: Array<Attr> - 日志数据键值对。