writers

package
v0.0.0-...-205ef5e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 20, 2020 License: MIT, MIT Imports: 6 Imported by: 0

Documentation

Overview

Package writers 提供了一组实现 io.Writer 接口的结构。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Adder

type Adder interface {
	// 向容器添加一个 io.Writer 实例
	Add(io.Writer) error
}

Adder 为 io.Writer 的容器。

type Buffer

type Buffer struct {
	// contains filtered or unexported fields
}

Buffer 实现对输出内容的缓存,只有输出数量达到指定的值 才会真正地向指定的 io.Writer 输出。

func NewBuffer

func NewBuffer(size int) *Buffer

NewBuffer 新建一个 Buffer。 w 最终输出的方向;当 size<=1 时,所有的内容都不会缓存,直接向 w 输出。

func (*Buffer) Add

func (b *Buffer) Add(w io.Writer) error

Adder.Add()

func (*Buffer) Flush

func (b *Buffer) Flush() (size int, err error)

Flush 实现了 Flusher.Flush() 若容器为空时,则相当于不作任何动作。

func (*Buffer) SetSize

func (b *Buffer) SetSize(size int)

SetSize 设置缓存的大小,若值小于 2,则所有的输出都不会被缓存。

func (*Buffer) Write

func (b *Buffer) Write(bs []byte) (int, error)

io.Writer.Write() 若容器为空时,则相当于不作任何动作。

type Console

type Console struct {
	// contains filtered or unexported fields
}

Console 带色彩输出的控制台。

func NewConsole

func NewConsole(out *os.File, foreground, background colors.Color) *Console

NewConsole 新建 Console 实例

out 为输出方向,可以是 colors.Stderr 和 colors.Stdout 两个值。 foreground,background 为输出文字的前景色和背景色。

func (*Console) SetColor

func (c *Console) SetColor(foreground, background colors.Color)

SetColor 更改输出颜色

func (*Console) Write

func (c *Console) Write(b []byte) (size int, err error)

io.Writer

type Container

type Container struct {
	// contains filtered or unexported fields
}

Container 为 io.Writer 的容器。

func NewContainer

func NewContainer() *Container

NewContainer 构造 Container 实例

func (*Container) Add

func (c *Container) Add(w io.Writer) error

添加一个io.Writer实例

func (*Container) Clear

func (c *Container) Clear()

清除所有的writer

func (*Container) Flush

func (c *Container) Flush() (size int, err error)

调用所有子项的Flush函数。

func (*Container) Len

func (c *Container) Len() int

包含的元素

func (*Container) Write

func (c *Container) Write(bs []byte) (size int, err error)

当某一项出错时,将直接返回其信息,后续的都将中断。 若容器为空时,则相当于不作任何动作。

type FlushAdder

type FlushAdder interface {
	Flusher
	Adder
}

Flusher + Adder

type Flusher

type Flusher interface {
	// 将缓存的内容输出
	Flush() (size int, err error)
}

Flusher 缓存接口

go 中并没有提供析构函数的机制,所以想要在对象销毁时自动输出缓存中的内容, 只能定义一个接口。

type Rotate

type Rotate struct {
	// contains filtered or unexported fields
}

Rotate 可按大小进行分割的文件

import "log"
// 每个文件以100M大小进行分割,以日期名作为文件名保存在/var/log下。
f,_ := NewRotate("/var/log", 100*1024*1024)
l := log.Init(f, "DEBUG", log.LstdFlags)

func NewRotate

func NewRotate(prefix, dir string, size int) (*Rotate, error)

NewRotate 新建 Rotate。 prefix 文件名前缀。 dir 为文件保存的目录,若不存在会尝试创建。 size 为每个文件的最大尺寸,单位为 byte。size 应该足够大,如果 size 的大小不足够支撑一秒钟产生的量,则会继续在原有文件之后追加内容。

func (*Rotate) Close

func (r *Rotate) Close() error

io.WriteCloser.Close()

func (*Rotate) Flush

func (r *Rotate) Flush()

Flusher.Flush()

func (*Rotate) Write

func (r *Rotate) Write(buf []byte) (int, error)

io.WriteCloser.Write()

type WriteAdder

type WriteAdder interface {
	Adder
	io.Writer
}

io.Writer + Adder

type WriteFlushAdder

type WriteFlushAdder interface {
	io.Writer
	Flusher
	Adder
}

io.Writer + Flusher + Adder

type WriteFlusher

type WriteFlusher interface {
	Flusher
	io.Writer
}

io.Writer + Flusher

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL