Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

接口

interface LogValue

public interface LogValue {
    func writeTo(w: LogWriter): Unit
}

功能:为类型提供序列化到日志输出目标的接口。

LogWriter 搭配使用, LogWriter 可以通过 writeValue 将实现了 LogValue 接口的类型写入到日志输出目标中。

func writeTo(LogWriter)

func writeTo(w: LogWriter): Unit

功能:将实现了 LogValue 接口的类型写入参数 w 指定的 LogWriter 实例中。

参数:

extend Bool <: LogValue

extend Bool <: LogValue

功能:为 Bool 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 Bool 类型序列化到流的功能。

参数:

示例:

import stdx.log.*
import std.time.*

// 定义一个简单自定义的LogWriter实现用于演示,实际开发中请参考 samples 中示例
public class SimpleLogWriter <: LogWriter {
    var buffer = ""

    // 写入空值时,添加自定义内容
    public func writeNone(): Unit {
        buffer += " NONE "
    }
    // 写入整数时,添加自定义内容
    public func writeInt(v: Int64): Unit {
        buffer += "INT: ${v} "
    }
    // 写入布尔值时,添加自定义内容
    public func writeBool(v: Bool): Unit {
        buffer += "BOOL: ${v} "
    }
    // 写入浮点数时,添加自定义内容
    public func writeFloat(v: Float64): Unit {
        buffer += " FLOAT: ${v} "
    }
    // 写入字符串时,添加自定义内容
    public func writeString(v: String): Unit {
        buffer += " STRING: ${v} "
    }
    // 写入日期时间时,添加自定义内容
    public func writeDateTime(v: DateTime): Unit {
        buffer += " DATETIME: ${v} "
    }
    // 写入间隔时间时,添加自定义内容
    public func writeDuration(v: Duration): Unit {
        buffer += " DURATION: ${v} "
    }
    // 写入异常时,添加自定义内容
    public func writeException(v: Exception): Unit {
        buffer += " EXCEPTION: ${v.message} "
    }
    // 写入键时,添加自定义内容
    public func writeKey(v: String): Unit {
        buffer += " KEY: ${v} = "
    }
    // 写入值时,添加自定义内容
    public func writeValue(v: LogValue): Unit {
        v.writeTo(this)
    }
    // 写入数组时,添加自定义内容
    public func startArray(): Unit {
        buffer += "["
    }
    public func endArray(): Unit {
        buffer += "]"
    }
    // 写入对象时,添加自定义内容
    public func startObject(): Unit {
        buffer += "{"
    }
    public func endObject(): Unit {
        buffer += "}"
    }
}

main() {
    // 创建一个LogWriter实例
    let writer = SimpleLogWriter()

    Option<String>.Some("hello").writeTo(writer)
    123.writeTo(writer)
    true.writeTo(writer)
    3.14.writeTo(writer)
    "hello".writeTo(writer)
    DateTime.of(year: 2026, month: 1, dayOfMonth: 1, timeZone: TimeZone.UTC).writeTo(writer)
    Duration.second.writeTo(writer)
    Exception("异常信息").writeTo(writer)

    println("输出样式: ${writer.buffer}")

    return 0
}

运行结果:

输出样式:  STRING: hello INT: 123 BOOL: true  FLOAT: 3.140000  STRING: hello  DATETIME: 2026-01-01T00:00:00Z  DURATION: 1s  EXCEPTION: 异常信息

extend DateTime <: LogValue

extend DateTime <: LogValue

功能:为 DateTime 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 DateTime 类型序列化到流的功能。

参数:

示例:

参见 extend Bool 示例。

extend Duration <: LogValue

extend Duration <: LogValue

功能:为 Duration 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 Duration 类型序列化到流的功能。

参数:

示例:

参见 extend Bool 示例。

extend Exception <: LogValue

extend Exception <: LogValue

功能:为 Exception 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 Exception 类型序列化到流的功能。

参数:

示例:

参见 extend Bool 示例。

extend Float64 <: LogValue

extend Float64 <: LogValue

功能:为 Float64 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 Float64 类型序列化到流的功能。

参数:

示例:

参见 extend Bool 示例。

extend Int64 <: LogValue

extend Int64 <: LogValue

功能:为 Int64 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 Int64 类型序列化到流的功能。

参数:

示例:

参见 extend Bool 示例。

extend String <: LogValue

extend String <: LogValue

功能:为 String 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 String 类型序列化到流的功能。

参数:

示例:

参见 extend Bool 示例。

extend<T> Array<T> <: LogValue where T <: LogValue

extend<T> Array<T> <: LogValue where T <: LogValue

功能:为 Array<T> 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 Array<T> 类型序列化到流的功能。

参数:

示例:

import stdx.log.*
import std.time.*

// 定义一个简单自定义的LogWriter实现用于演示,实际开发中请参考 samples 中示例
public class SimpleLogWriter <: LogWriter {
    var buffer = ""

    // 写入空值时,添加自定义内容
    public func writeNone(): Unit {
        buffer += " NONE "
    }
    // 写入整数时,添加自定义内容
    public func writeInt(v: Int64): Unit {
        buffer += "INT: ${v} "
    }
    // 写入布尔值时,添加自定义内容
    public func writeBool(v: Bool): Unit {
        buffer += "BOOL: ${v} "
    }
    // 写入浮点数时,添加自定义内容
    public func writeFloat(v: Float64): Unit {
        buffer += " FLOAT: ${v} "
    }
    // 写入字符串时,添加自定义内容
    public func writeString(v: String): Unit {
        buffer += " STRING: ${v} "
    }
    // 写入日期时间时,添加自定义内容
    public func writeDateTime(v: DateTime): Unit {
        buffer += " DATETIME: ${v} "
    }
    // 写入间隔时间时,添加自定义内容
    public func writeDuration(v: Duration): Unit {
        buffer += " DURATION: ${v} "
    }
    // 写入异常时,添加自定义内容
    public func writeException(v: Exception): Unit {
        buffer += " EXCEPTION: ${v.message} "
    }
    // 写入键时,添加自定义内容
    public func writeKey(v: String): Unit {
        buffer += " KEY: ${v} = "
    }
    // 写入值时,添加自定义内容
    public func writeValue(v: LogValue): Unit {
        v.writeTo(this)
    }
    // 写入数组时,添加自定义内容
    public func startArray(): Unit {
        buffer += "["
    }
    public func endArray(): Unit {
        buffer += "]"
    }
    // 写入对象时,添加自定义内容
    public func startObject(): Unit {
        buffer += "{"
    }
    public func endObject(): Unit {
        buffer += "}"
    }
}

main() {
    // 创建一个LogWriter实例
    let writer = SimpleLogWriter()

    // 创建一个Array实例
    let array: Array<LogValue> = [
        3.14,
        "hello",
        DateTime.of(year: 2026, month: 1, dayOfMonth: 1, timeZone: TimeZone.UTC),
        Duration.second,
        Exception("error"),
        Option<String>.None
    ]

    array.writeTo(writer)

    println("输出样式: ${writer.buffer}")

    return 0
}

运行结果:

输出样式: [ FLOAT: 3.140000  STRING: hello  DATETIME: 2026-01-01T00:00:00Z  DURATION: 1s  EXCEPTION: error  NONE ]

extend<T> Option<T> <: LogValue where T <: LogValue

extend<T> Option<T> <: LogValue where T <: LogValue

功能:为 Option<T> 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 Option<T> 类型序列化到流的功能。

参数:

示例:

参见 extend Bool 示例。

extend<V> HashMap<String, V> <: LogValue where V <: LogValue

extend<V> HashMap<String, V> <: LogValue where V <: LogValue

功能:为 HashMap<K, V> 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 HashMap<K, V> 类型序列化到流的功能。

参数:

示例:

import stdx.log.*
import std.collection.*
import std.time.*

// 定义一个简单自定义的LogWriter实现用于演示,实际开发中请参考 samples 中示例
public class SimpleLogWriter <: LogWriter {
    var buffer = ""

    public func writeNone(): Unit {}

    // 写入整数时,添加自定义内容
    public func writeInt(v: Int64): Unit {
        buffer += "INT: ${v} "
    }
    public func writeBool(v: Bool): Unit {}
    public func writeFloat(v: Float64): Unit {}
    // 写入字符串时,添加自定义内容
    public func writeString(v: String): Unit {
        buffer += " STRING: ${v} "
    }
    public func writeDateTime(v: DateTime): Unit {}
    public func writeDuration(v: Duration): Unit {}
    public func writeException(v: Exception): Unit {}
    // 写入键时,添加自定义内容
    public func writeKey(v: String): Unit {
        buffer += " KEY: ${v} = "
    }
    // 写入值时,添加自定义内容
    public func writeValue(v: LogValue): Unit {
        v.writeTo(this)
    }
    public func startArray(): Unit {}
    public func endArray(): Unit {}
    // 写入对象时,添加自定义内容
    public func startObject(): Unit {
        buffer += "{"
    }
    public func endObject(): Unit {
        buffer += "}"
    }
}

main() {
    // 创建一个LogWriter实例
    let writer = SimpleLogWriter()

    // 创建一个HashMap实例
    let hashMap = HashMap<String, LogValue>([("HashMapKey", 123)])
    // 创建一个TreeMap实例
    let treeMap = TreeMap<String, LogValue>([("TreeMapKey", "TreeMapValue")])

    // 写入LogWriter
    hashMap.writeTo(writer)
    treeMap.writeTo(writer)

    println("输出样式: ${writer.buffer}")

    return 0
}

运行结果:

输出样式: { KEY: HashMapKey = INT: 123 }{ KEY: TreeMapKey =  STRING: TreeMapValue }

extend<V> TreeMap<String, V> <: LogValue where V <: LogValue

extend<V> TreeMap<String, V> <: LogValue where V <: LogValue

功能:为 TreeMap<K, V> 类型实现 LogValue 接口。

父类型:

func writeTo(LogWriter)

public func writeTo(w: LogWriter): Unit

功能:提供 TreeMap<K, V> 类型序列化到流的功能。

参数:

示例:

参见 extend<V> HashMap 示例。