logpolicy: add NewWithConfigPath (#5625)
The version.CmdName implementation is buggy such that it does not correctly identify the binary name if it embeds other go binaries. For now, add a NewWithConfigPath API that allows the caller to explicitly specify this information. Signed-off-by: Joe Tsai <joetsai@digital-static.net>pull/5629/head
parent
45a3de14a6
commit
aa0064db4d
|
@ -438,6 +438,13 @@ func tryFixLogStateLocation(dir, cmdname string) {
|
||||||
// New returns a new log policy (a logger and its instance ID) for a
|
// New returns a new log policy (a logger and its instance ID) for a
|
||||||
// given collection name.
|
// given collection name.
|
||||||
func New(collection string) *Policy {
|
func New(collection string) *Policy {
|
||||||
|
return NewWithConfigPath(collection, "", "")
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewWithConfigPath is identical to New,
|
||||||
|
// but uses the specified directory and command name.
|
||||||
|
// If either is empty, it derives them automatically.
|
||||||
|
func NewWithConfigPath(collection, dir, cmdName string) *Policy {
|
||||||
var lflags int
|
var lflags int
|
||||||
if term.IsTerminal(2) || runtime.GOOS == "windows" {
|
if term.IsTerminal(2) || runtime.GOOS == "windows" {
|
||||||
lflags = 0
|
lflags = 0
|
||||||
|
@ -460,9 +467,12 @@ func New(collection string) *Policy {
|
||||||
earlyErrBuf.WriteByte('\n')
|
earlyErrBuf.WriteByte('\n')
|
||||||
}
|
}
|
||||||
|
|
||||||
dir := logsDir(earlyLogf)
|
if dir == "" {
|
||||||
|
dir = logsDir(earlyLogf)
|
||||||
cmdName := version.CmdName()
|
}
|
||||||
|
if cmdName == "" {
|
||||||
|
cmdName = version.CmdName()
|
||||||
|
}
|
||||||
tryFixLogStateLocation(dir, cmdName)
|
tryFixLogStateLocation(dir, cmdName)
|
||||||
|
|
||||||
cfgPath := filepath.Join(dir, fmt.Sprintf("%s.log.conf", cmdName))
|
cfgPath := filepath.Join(dir, fmt.Sprintf("%s.log.conf", cmdName))
|
||||||
|
|
Loading…
Reference in New Issue