Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: logx with color * chore: update logs * fix test error * chore: change colors of http codes * chore: add comments * chore: use faith/color instead of ascii code color * chore: update colors * chore: update colors * chore: fix duplicated slowcall text * chore: remove slowcall colors
- Loading branch information
Showing
13 changed files
with
261 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,6 +18,7 @@ | |
# for test purpose | ||
**/adhoc | ||
go.work | ||
go.work.sum | ||
|
||
# gitlab ci | ||
.cache | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
package color | ||
|
||
import "github.com/fatih/color" | ||
|
||
const ( | ||
// NoColor is no color for both foreground and background. | ||
NoColor Color = iota | ||
// FgBlack is the foreground color black. | ||
FgBlack | ||
// FgRed is the foreground color red. | ||
FgRed | ||
// FgGreen is the foreground color green. | ||
FgGreen | ||
// FgYellow is the foreground color yellow. | ||
FgYellow | ||
// FgBlue is the foreground color blue. | ||
FgBlue | ||
// FgMagenta is the foreground color magenta. | ||
FgMagenta | ||
// FgCyan is the foreground color cyan. | ||
FgCyan | ||
// FgWhite is the foreground color white. | ||
FgWhite | ||
|
||
// BgBlack is the background color black. | ||
BgBlack | ||
// BgRed is the background color red. | ||
BgRed | ||
// BgGreen is the background color green. | ||
BgGreen | ||
// BgYellow is the background color yellow. | ||
BgYellow | ||
// BgBlue is the background color blue. | ||
BgBlue | ||
// BgMagenta is the background color magenta. | ||
BgMagenta | ||
// BgCyan is the background color cyan. | ||
BgCyan | ||
// BgWhite is the background color white. | ||
BgWhite | ||
) | ||
|
||
var colors = map[Color][]color.Attribute{ | ||
FgBlack: {color.FgBlack, color.Bold}, | ||
FgRed: {color.FgRed, color.Bold}, | ||
FgGreen: {color.FgGreen, color.Bold}, | ||
FgYellow: {color.FgYellow, color.Bold}, | ||
FgBlue: {color.FgBlue, color.Bold}, | ||
FgMagenta: {color.FgMagenta, color.Bold}, | ||
FgCyan: {color.FgCyan, color.Bold}, | ||
FgWhite: {color.FgWhite, color.Bold}, | ||
BgBlack: {color.BgBlack, color.FgHiWhite, color.Bold}, | ||
BgRed: {color.BgRed, color.FgHiWhite, color.Bold}, | ||
BgGreen: {color.BgGreen, color.FgHiWhite, color.Bold}, | ||
BgYellow: {color.BgHiYellow, color.FgHiBlack, color.Bold}, | ||
BgBlue: {color.BgBlue, color.FgHiWhite, color.Bold}, | ||
BgMagenta: {color.BgMagenta, color.FgHiWhite, color.Bold}, | ||
BgCyan: {color.BgCyan, color.FgHiWhite, color.Bold}, | ||
BgWhite: {color.BgHiWhite, color.FgHiBlack, color.Bold}, | ||
} | ||
|
||
type Color uint32 | ||
|
||
// WithColor returns a string with the given color applied. | ||
func WithColor(text string, colour Color) string { | ||
c := color.New(colors[colour]...) | ||
return c.Sprint(text) | ||
} | ||
|
||
// WithColorPadding returns a string with the given color applied with leading and trailing spaces. | ||
func WithColorPadding(text string, colour Color) string { | ||
return WithColor(" "+text+" ", colour) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package color | ||
|
||
import ( | ||
"testing" | ||
|
||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
func TestWithColor(t *testing.T) { | ||
output := WithColor("Hello", BgRed) | ||
assert.Equal(t, "Hello", output) | ||
} | ||
|
||
func TestWithColorPadding(t *testing.T) { | ||
output := WithColorPadding("Hello", BgRed) | ||
assert.Equal(t, " Hello ", output) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package logx | ||
|
||
import ( | ||
"sync/atomic" | ||
|
||
"github.com/zeromicro/go-zero/core/color" | ||
) | ||
|
||
// WithColor is a helper function to add color to a string, only in plain encoding. | ||
func WithColor(text string, colour color.Color) string { | ||
if atomic.LoadUint32(&encoding) == plainEncodingType { | ||
return color.WithColor(text, colour) | ||
} | ||
|
||
return text | ||
} | ||
|
||
// WithColorPadding is a helper function to add color to a string with leading and trailing spaces, | ||
// only in plain encoding. | ||
func WithColorPadding(text string, colour color.Color) string { | ||
if atomic.LoadUint32(&encoding) == plainEncodingType { | ||
return color.WithColorPadding(text, colour) | ||
} | ||
|
||
return text | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package logx | ||
|
||
import ( | ||
"sync/atomic" | ||
"testing" | ||
|
||
"github.com/stretchr/testify/assert" | ||
"github.com/zeromicro/go-zero/core/color" | ||
) | ||
|
||
func TestWithColor(t *testing.T) { | ||
old := atomic.SwapUint32(&encoding, plainEncodingType) | ||
defer atomic.StoreUint32(&encoding, old) | ||
|
||
output := WithColor("hello", color.BgBlue) | ||
assert.Equal(t, "hello", output) | ||
|
||
atomic.StoreUint32(&encoding, jsonEncodingType) | ||
output = WithColor("hello", color.BgBlue) | ||
assert.Equal(t, "hello", output) | ||
} | ||
|
||
func TestWithColorPadding(t *testing.T) { | ||
old := atomic.SwapUint32(&encoding, plainEncodingType) | ||
defer atomic.StoreUint32(&encoding, old) | ||
|
||
output := WithColorPadding("hello", color.BgBlue) | ||
assert.Equal(t, " hello ", output) | ||
|
||
atomic.StoreUint32(&encoding, jsonEncodingType) | ||
output = WithColorPadding("hello", color.BgBlue) | ||
assert.Equal(t, "hello", output) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.