lineprefix

package module
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2021 License: MIT Imports: 6 Imported by: 5

README

lineprefix

Go Reference Go

io.Writer wrapper with line prefix and color customizations.

Usage

Static Prefix
prefix := lineprefix.Prefix("app |")
writer := lineprefix.New(prefix)

fmt.Fprintln(writer, "hello world")

output

app | hello world
Dynamic Prefix
now := func() string { return time.Now().UTC().Format("2006-01-02 15:04:05") }
prefix := lineprefix.PrefixFunc(now)
writer := lineprefix.New(prefix)

for i := 0; i<3; i++ {
    fmt.Fprintln(writer, "hello world")
    time.Sleep(time.Second)
}

output

2021-06-01 18:53:15 hello world
2021-06-01 18:53:16 hello world
2021-06-01 18:53:17 hello world
Color

Colors can be added with fatih/color.

Colored Prefix

A prefix with blue text on white background.

blue := color.New(color.FgBlue, color.BgWhite).SprintFunc()
prefix := lineprefix.Prefix(blue("app"))
writer := lineprefix.New(prefix)

fmt.Fprintln(writer, "this outputs blue on white prefix text")
Colored Output

A blue colored output.

blue := color.New(color.FgBlue)
option := lineprefix.Color(blue)
writer := lineprefix.New(option)

fmt.Fprintln(writer, "this outputs blue color text")
Example

The example file has an overview of the capabilities.

go run example/main.go

Screenshot

colored prefix and colored text from the example.

Screenshot

License

MIT

Documentation

Overview

Package lineprefix provides a `io.Writer` wrapper with line prefix and color customizations.

Static Prefix

prefix := lineprefix.Prefix("app |")
writer := lineprefix.New(prefix)

fmt.Fprintln(writer, "hello world")

Dynamic Prefix

now := func() string { return time.Now().UTC().Format("2006-01-02 15:04:05") }
prefix := lineprefix.PrefixFunc(now)
writer := lineprefix.New(prefix)

for i := 0; i<3; i++ {
    fmt.Fprintln(writer, "hello world")
    time.Sleep(time.Second)
}

Colors can be added with github.com/faith/color

A prefix with blue text on white background

blue := color.New(color.FgBlue, color.BgWhite).SprintFunc()
prefix := lineprefix.Prefix(blue("app"))
writer := lineprefix.New(prefix)

fmt.Fprintln(writer, "this outputs blue on white prefix text")

A blue colored output

blue := color.New(color.FgBlue)
option := lineprefix.Color(blue)
writer := lineprefix.New(option)

fmt.Fprintln(writer, "this outputs blue color text")

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(options ...Option) io.WriteCloser

New creates a new lineprefix writer with options.

Types

type Option

type Option interface {
	// contains filtered or unexported methods
}

Option is the configuration option for a new instance of lineprefix writer.

func Color

func Color(c *color.Color) Option

Color sets the colour for the line outputs, excluding the prefix.

func Prefix

func Prefix(s string) Option

Prefix sets the prefix to use. Can be called multiple times to set multiple prefixes.

func PrefixFunc

func PrefixFunc(f func() string) Option

PrefixFunc is like prefix but with the ability to make it dynamic. Can be called multiple times to set multiple prefixes.

func RenderEscaped

func RenderEscaped(b bool) Option

RenderEscaped (if true) enables the rendering of escaped whitespace characters. e.g. `\\t` appears as tab instead of `\t`, `\\n` appears as newline instead of `\n` e.t.c.

func Writer

func Writer(w io.Writer) Option

Writer sets the writer to use. The default writer is os.Stdout.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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