echelon

package module
v1.9.0 Latest Latest
Warning

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

Go to latest
Published: May 30, 2023 License: MIT Imports: 3 Imported by: 1

README

Echelon - hierarchical progress in terminals

Build Status

Cross-platform library to organize logs in a hierarchical structure.

Here is an example how it looks for running Dockerized tasks via Cirrus CLI:

Cirrus CLI Demo

Features

  • Customizable and works with any VT100 compatible terminal
  • Supports simplified output for dumb terminals
  • Implements incremental drawing algorithm to optimize drawing performance
  • Can be used from multiple goroutines
  • Pluggable and customizable renderers
  • Works on Windows!

Example

Please check demo folder for a simple example or how echelon is used in Cirrus CLI.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FinishType added in v1.5.0

type FinishType int
const (
	FinishTypeSucceeded FinishType = iota
	FinishTypeFailed
	FinishTypeSkipped
)

type LogEntryMessage

type LogEntryMessage struct {
	Level LogLevel
	// contains filtered or unexported fields
}

func NewLogEntryMessage

func NewLogEntryMessage(scopes []string, level LogLevel, format string, arguments ...interface{}) *LogEntryMessage

func (*LogEntryMessage) GetMessage

func (entry *LogEntryMessage) GetMessage() string

func (*LogEntryMessage) GetScopes

func (entry *LogEntryMessage) GetScopes() []string

type LogLevel

type LogLevel uint32
const (
	ErrorLevel LogLevel = iota
	WarnLevel
	InfoLevel
	DebugLevel
	TraceLevel
)

type LogRendered

type LogRendered interface {
	RenderScopeStarted(entry *LogScopeStarted)
	RenderScopeFinished(entry *LogScopeFinished)
	RenderMessage(entry *LogEntryMessage)
}

type LogScopeFinished

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

func NewLogScopeFinished

func NewLogScopeFinished(finishType FinishType, scopes ...string) *LogScopeFinished

func (*LogScopeFinished) FinishType added in v1.5.0

func (entry *LogScopeFinished) FinishType() FinishType

func (*LogScopeFinished) GetScopes

func (entry *LogScopeFinished) GetScopes() []string

type LogScopeStarted

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

func NewLogScopeStarted

func NewLogScopeStarted(scopes ...string) *LogScopeStarted

func (*LogScopeStarted) GetScopes

func (entry *LogScopeStarted) GetScopes() []string

type Logger

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

func NewLogger

func NewLogger(level LogLevel, renderer LogRendered) *Logger

func (*Logger) AsWriter added in v1.8.0

func (logger *Logger) AsWriter(level LogLevel) io.Writer

func (*Logger) Debugf

func (logger *Logger) Debugf(format string, args ...interface{})

func (*Logger) Errorf

func (logger *Logger) Errorf(format string, args ...interface{})

func (*Logger) Finish

func (logger *Logger) Finish(success bool)

func (*Logger) FinishWithType added in v1.5.0

func (logger *Logger) FinishWithType(finishType FinishType)

func (*Logger) Infof

func (logger *Logger) Infof(format string, args ...interface{})

func (*Logger) IsLogLevelEnabled

func (logger *Logger) IsLogLevelEnabled(level LogLevel) bool

func (*Logger) Logf

func (logger *Logger) Logf(level LogLevel, format string, args ...interface{})

func (*Logger) Renderer added in v1.7.0

func (logger *Logger) Renderer() LogRendered

func (*Logger) Scoped

func (logger *Logger) Scoped(scope string) *Logger

func (*Logger) Tracef

func (logger *Logger) Tracef(format string, args ...interface{})

func (*Logger) Warnf

func (logger *Logger) Warnf(format string, args ...interface{})

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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