本文整理汇总了Golang中github.com/hashicorp/logutils.LogLevel函数的典型用法代码示例。如果您正苦于以下问题:Golang LogLevel函数的具体用法?Golang LogLevel怎么用?Golang LogLevel使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LogLevel函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: LogOutput
// LogOutput determines where we should send logs (if anywhere) and the log level.
func LogOutput() (logOutput io.Writer, err error) {
logOutput = ioutil.Discard
envLevel := os.Getenv(EnvLog)
if envLevel == "" {
return
}
logOutput = os.Stderr
if logPath := os.Getenv(EnvLogFile); logPath != "" {
var err error
logOutput, err = os.Create(logPath)
if err != nil {
return nil, err
}
}
// This was the default since the beginning
logLevel := logutils.LogLevel("TRACE")
if isValidLogLevel(envLevel) {
// allow following for better ux: info, Info or INFO
logLevel = logutils.LogLevel(strings.ToUpper(envLevel))
} else {
log.Printf("[WARN] Invalid log level: %q. Defaulting to level: TRACE. Valid levels are: %+v",
envLevel, validLevels)
}
logOutput = &logutils.LevelFilter{
Levels: validLevels,
MinLevel: logLevel,
Writer: logOutput,
}
return
}
开发者ID:AssertSelenium,项目名称:terraform,代码行数:36,代码来源:logging.go
示例2: setupLogging
func setupLogging() {
minLevel := logutils.LogLevel("ERROR")
if *debug {
minLevel = logutils.LogLevel("DEBUG")
}
filter := &logutils.LevelFilter{
Levels: []logutils.LogLevel{"DEBUG", "INFO", "ERROR"},
MinLevel: minLevel,
Writer: os.Stderr,
}
log.SetOutput(filter)
}
开发者ID:nowk,项目名称:gowatch,代码行数:15,代码来源:main.go
示例3: Setup
func Setup(config *Config) error {
var logOutput io.Writer
// Setup the default logging
logFilter := NewLogFilter()
logFilter.MinLevel = logutils.LogLevel(strings.ToUpper(config.Level))
logFilter.Writer = config.Writer
if !ValidateLevelFilter(logFilter.MinLevel, logFilter) {
levels := make([]string, 0, len(logFilter.Levels))
for _, level := range logFilter.Levels {
levels = append(levels, string(level))
}
return fmt.Errorf("invalid log level %q, valid log levels are %s",
config.Level, strings.Join(levels, ", "))
}
// Check if syslog is enabled
if config.Syslog {
log.Printf("[DEBUG] (logging) enabling syslog on %s", config.SyslogFacility)
l, err := gsyslog.NewLogger(gsyslog.LOG_NOTICE, config.SyslogFacility, config.Name)
if err != nil {
return fmt.Errorf("error setting up syslog logger: %s", err)
}
syslog := &SyslogWrapper{l, logFilter}
logOutput = io.MultiWriter(logFilter, syslog)
} else {
logOutput = io.MultiWriter(logFilter)
}
log.SetFlags(log.Ldate | log.Ltime | log.Lmicroseconds | log.LUTC)
log.SetOutput(logOutput)
return nil
}
开发者ID:hashicorp,项目名称:consul-replicate,代码行数:35,代码来源:logging.go
示例4: main
func main() {
filter := &logutils.LevelFilter{
Levels: []logutils.LogLevel{"DEBUG", "INFO", "WARN", "ERROR"},
MinLevel: logutils.LogLevel("INFO"),
Writer: os.Stderr,
}
log.SetOutput(filter)
viper.SetConfigName("Rigfile")
viper.AddConfigPath("$HOME/.rigger/")
viper.AddConfigPath(".")
err := viper.ReadInConfig()
if err != nil {
if _, ok := err.(viper.UnsupportedConfigError); ok {
log.Printf("[ERROR] No Rigfile exists.")
os.Exit(1)
} else {
log.Printf("[ERROR] %s", err)
}
}
var cmdUp = &cobra.Command{
Use: "up",
Short: "Create my infrastructure",
Long: `Do lots of work`,
Run: func(cmd *cobra.Command, args []string) {
log.Printf("[INFO] Rigger lifting!")
},
}
var rootCmd = &cobra.Command{Use: "rigger"}
rootCmd.AddCommand(cmdUp)
rootCmd.Execute()
}
开发者ID:sgoings,项目名称:rigger,代码行数:35,代码来源:rigger.go
示例5: TestIPCLogStream
func TestIPCLogStream(t *testing.T) {
sc := &MockStreamClient{}
filter := LevelFilter()
filter.MinLevel = logutils.LogLevel("INFO")
ls := newLogStream(sc, filter, 42, log.New(os.Stderr, "", log.LstdFlags))
defer ls.Stop()
log := "[DEBUG] this is a test log"
log2 := "[INFO] This should pass"
ls.HandleLog(log)
ls.HandleLog(log2)
time.Sleep(5 * time.Millisecond)
if len(sc.headers) != 1 {
t.Fatalf("expected 1 messages!")
}
for _, h := range sc.headers {
if h.Seq != 42 {
t.Fatalf("bad seq")
}
if h.Error != "" {
t.Fatalf("bad err")
}
}
obj1 := sc.objs[0].(*logRecord)
if obj1.Log != log2 {
t.Fatalf("bad event %#v", obj1)
}
}
开发者ID:WIZARD-CXY,项目名称:golang-devops-stuff,代码行数:32,代码来源:ipc_log_stream_test.go
示例6: TestSyslogFilter
func TestSyslogFilter(t *testing.T) {
if runtime.GOOS == "windows" {
t.SkipNow()
}
l, err := gsyslog.NewLogger(gsyslog.LOG_NOTICE, "LOCAL0", "consul")
if err != nil {
t.Fatalf("err: %s", err)
}
filt := LevelFilter()
filt.MinLevel = logutils.LogLevel("INFO")
s := &SyslogWrapper{l, filt}
n, err := s.Write([]byte("[INFO] test"))
if err != nil {
t.Fatalf("err: %s", err)
}
if n == 0 {
t.Fatalf("should have logged")
}
n, err = s.Write([]byte("[DEBUG] test"))
if err != nil {
t.Fatalf("err: %s", err)
}
if n != 0 {
t.Fatalf("should not have logged")
}
}
开发者ID:jefferai,项目名称:consul,代码行数:29,代码来源:syslog_test.go
示例7: TestSyslogFilter
func TestSyslogFilter(t *testing.T) {
if runtime.GOOS == "windows" {
t.SkipNow()
}
// Travis does not support syslog for some reason
if travis := os.Getenv("TRAVIS"); travis != "" {
t.SkipNow()
}
l, err := gsyslog.NewLogger(gsyslog.LOG_NOTICE, "LOCAL0", "consul-template")
if err != nil {
t.Fatalf("err: %s", err)
}
filt := NewLogFilter()
filt.MinLevel = logutils.LogLevel("INFO")
s := &SyslogWrapper{l, filt}
n, err := s.Write([]byte("[INFO] test"))
if err != nil {
t.Fatalf("err: %s", err)
}
if n == 0 {
t.Fatalf("should have logged")
}
n, err = s.Write([]byte("[DEBUG] test"))
if err != nil {
t.Fatalf("err: %s", err)
}
if n != 0 {
t.Fatalf("should not have logged")
}
}
开发者ID:timopek,项目名称:consul-template,代码行数:35,代码来源:syslog_test.go
示例8: handleReload
// handleReload is invoked when we should reload our configs, e.g. SIGHUP
func (c *Command) handleReload(config *Config, agent *Agent) *Config {
c.Ui.Output("Reloading configuration...")
newConf := c.readConfig()
if newConf == nil {
c.Ui.Error(fmt.Sprintf("Failed to reload configs"))
return config
}
// Change the log level
minLevel := logutils.LogLevel(strings.ToUpper(newConf.LogLevel))
if ValidateLevelFilter(minLevel, c.logFilter) {
c.logFilter.SetMinLevel(minLevel)
} else {
c.Ui.Error(fmt.Sprintf(
"Invalid log level: %s. Valid log levels are: %v",
minLevel, c.logFilter.Levels))
// Keep the current log level
newConf.LogLevel = config.LogLevel
}
// Change the event handlers
c.scriptHandler.UpdateScripts(newConf.EventScripts())
// Update the tags in serf
if err := agent.SetTags(newConf.Tags); err != nil {
c.Ui.Error(fmt.Sprintf("Failed to update tags: %v", err))
return newConf
}
return newConf
}
开发者ID:knowhunger,项目名称:serf,代码行数:33,代码来源:command.go
示例9: LogOutput
// LogOutput determines where we should send logs (if anywhere) and the log level.
func LogOutput() (logOutput io.Writer, err error) {
logOutput = ioutil.Discard
logLevel := LogLevel()
if logLevel == "" {
return
}
logOutput = os.Stderr
if logPath := os.Getenv(EnvLogFile); logPath != "" {
var err error
logOutput, err = os.OpenFile(logPath, syscall.O_CREAT|syscall.O_RDWR|syscall.O_APPEND, 0666)
if err != nil {
return nil, err
}
}
// This was the default since the beginning
logOutput = &logutils.LevelFilter{
Levels: validLevels,
MinLevel: logutils.LogLevel(logLevel),
Writer: logOutput,
}
return
}
开发者ID:paultyng,项目名称:terraform,代码行数:27,代码来源:logging.go
示例10: Run
func (c *MonitorCommand) Run(args []string) int {
var logLevel string
cmdFlags := flag.NewFlagSet("monitor", flag.ContinueOnError)
cmdFlags.Usage = func() { c.Ui.Output(c.Help()) }
cmdFlags.StringVar(&logLevel, "log-level", "INFO", "log level")
rpcAddr := RPCAddrFlag(cmdFlags)
if err := cmdFlags.Parse(args); err != nil {
return 1
}
client, err := RPCClient(*rpcAddr)
if err != nil {
c.Ui.Error(fmt.Sprintf("Error connecting to Consul agent: %s", err))
return 1
}
defer client.Close()
logCh := make(chan string, 1024)
monHandle, err := client.Monitor(logutils.LogLevel(logLevel), logCh)
if err != nil {
c.Ui.Error(fmt.Sprintf("Error starting monitor: %s", err))
return 1
}
defer client.Stop(monHandle)
eventDoneCh := make(chan struct{})
go func() {
defer close(eventDoneCh)
OUTER:
for {
select {
case log := <-logCh:
if log == "" {
break OUTER
}
c.Ui.Info(log)
}
}
c.lock.Lock()
defer c.lock.Unlock()
if !c.quitting {
c.Ui.Info("")
c.Ui.Output("Remote side ended the monitor! This usually means that the\n" +
"remote side has exited or crashed.")
}
}()
select {
case <-eventDoneCh:
return 1
case <-c.ShutdownCh:
c.lock.Lock()
c.quitting = true
c.lock.Unlock()
}
return 0
}
开发者ID:hungld,项目名称:consul,代码行数:59,代码来源:monitor.go
示例11: setLogger
func setLogger(level string) {
filter := &logutils.LevelFilter{
Levels: []logutils.LogLevel{"DEBUG", "INFO", "WARN", "ERROR", "FATAL"},
MinLevel: logutils.LogLevel(level),
Writer: os.Stderr,
}
log.SetOutput(filter)
}
开发者ID:hbouvier,项目名称:watchgod,代码行数:8,代码来源:main.go
示例12: handleReload
// handleReload is invoked when we should reload our configs, e.g. SIGHUP
func (c *Command) handleReload(config *Config) *Config {
c.Ui.Output("Reloading configuration...")
newConf := c.readConfig()
if newConf == nil {
c.Ui.Error(fmt.Sprintf("Failed to reload configs"))
return config
}
// Change the log level
minLevel := logutils.LogLevel(strings.ToUpper(newConf.LogLevel))
if ValidateLevelFilter(minLevel, c.logFilter) {
c.logFilter.SetMinLevel(minLevel)
} else {
c.Ui.Error(fmt.Sprintf(
"Invalid log level: %s. Valid log levels are: %v",
minLevel, c.logFilter.Levels))
// Keep the current log level
newConf.LogLevel = config.LogLevel
}
// Bulk update the services and checks
c.agent.PauseSync()
defer c.agent.ResumeSync()
// Deregister the old services
for _, service := range config.Services {
ns := service.NodeService()
c.agent.RemoveService(ns.ID)
}
// Deregister the old checks
for _, check := range config.Checks {
health := check.HealthCheck(config.NodeName)
c.agent.RemoveCheck(health.CheckID)
}
// Register the services
for _, service := range newConf.Services {
ns := service.NodeService()
chkType := service.CheckType()
if err := c.agent.AddService(ns, chkType); err != nil {
c.Ui.Error(fmt.Sprintf("Failed to register service '%s': %v", service.Name, err))
}
}
// Register the checks
for _, check := range newConf.Checks {
health := check.HealthCheck(config.NodeName)
chkType := &check.CheckType
if err := c.agent.AddCheck(health, chkType); err != nil {
c.Ui.Error(fmt.Sprintf("Failed to register check '%s': %v %v", check.Name, err, check))
}
}
return newConf
}
开发者ID:rbg,项目名称:consul,代码行数:58,代码来源:command.go
示例13: validateLogLevel
func validateLogLevel(level string) error {
err := errors.New("invalid log level")
for _, l := range LOG_LEVELS {
if l == logutils.LogLevel(strings.ToUpper(level)) {
return nil
}
}
return err
}
开发者ID:luizbafilho,项目名称:fusis,代码行数:9,代码来源:validation.go
示例14: TestLevelFilter
func TestLevelFilter(t *testing.T) {
filt := LevelFilter()
filt.Levels = []logutils.LogLevel{"TRACE", "DEBUG", "INFO", "WARN", "ERR"}
level := logutils.LogLevel("INFO")
// LevelFilter regards INFO as valid level
if !ValidateLevelFilter(level, filt) {
t.Fatalf("expected valid LogLevel, %s was invalid", level)
}
level = logutils.LogLevel("FOO")
// LevelFilter regards FOO as invalid level
if ValidateLevelFilter(level, filt) {
t.Fatalf("expected invalid LogLevel, %s was valid", level)
}
}
开发者ID:PagerDuty,项目名称:nomad,代码行数:19,代码来源:log_levels_test.go
示例15: initLogger
// initLogger gets the log level from the environment, falling back to DEBUG if
// nothing was given.
func (cli *CLI) initLogger(level string) {
minLevel := strings.ToUpper(strings.TrimSpace(level))
if minLevel == "" {
minLevel = "WARN"
}
levelFilter.Writer = cli.errStream
levelFilter.SetMinLevel(logutils.LogLevel(level))
log.SetOutput(levelFilter)
}
开发者ID:cloudstrack,项目名称:atlas-upload-cli,代码行数:12,代码来源:cli.go
示例16: SetupLogger
// SetupLogger is
func SetupLogger(level LogLevel) {
var loglevel = logutils.LogLevel(level.String())
filter := &logutils.LevelFilter{
Levels: []logutils.LogLevel{"DEBUG", "INFO", "WARN", "ERROR"},
MinLevel: loglevel,
Writer: os.Stderr,
}
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
log.SetOutput(filter)
}
开发者ID:griffin-stewie,项目名称:ta,代码行数:11,代码来源:logger.go
示例17: Run
func (c *MonitorCommand) Run(args []string, ui cli.Ui) int {
var logLevel string
cmdFlags := flag.NewFlagSet("monitor", flag.ContinueOnError)
cmdFlags.Usage = func() { ui.Output(c.Help()) }
cmdFlags.StringVar(&logLevel, "log-level", "INFO", "log level")
rpcAddr := RPCAddrFlag(cmdFlags)
if err := cmdFlags.Parse(args); err != nil {
return 1
}
client, err := RPCClient(*rpcAddr)
if err != nil {
ui.Error(fmt.Sprintf("Error connecting to Serf agent: %s", err))
return 1
}
defer client.Close()
eventCh := make(chan string)
doneCh := make(chan struct{})
if err := client.Monitor(logutils.LogLevel(logLevel), eventCh, doneCh); err != nil {
ui.Error(fmt.Sprintf("Error starting monitor: %s", err))
return 1
}
eventDoneCh := make(chan struct{})
go func() {
defer close(eventDoneCh)
for e := range eventCh {
ui.Info(e)
}
c.lock.Lock()
defer c.lock.Unlock()
if !c.quitting {
ui.Info("")
ui.Output("Remote side ended the monitor! This usually means that the\n" +
"remote side has exited or crashed.")
}
}()
select {
case <-eventDoneCh:
return 1
case <-c.ShutdownCh:
c.lock.Lock()
c.quitting = true
c.lock.Unlock()
}
close(doneCh)
return 0
}
开发者ID:nikai3d,项目名称:serf,代码行数:52,代码来源:monitor.go
示例18: initLogger
func initLogger() {
if needsInit {
filter := &logutils.LevelFilter{
Levels: []logutils.LogLevel(logLevels),
MinLevel: logutils.LogLevel("WARN"),
Writer: os.Stderr,
}
log.SetOutput(filter)
log.SetFlags(0)
needsInit = false
}
}
开发者ID:tahitianstud,项目名称:utils,代码行数:13,代码来源:logger.go
示例19: SetLevel
// SetLevel will set the desired level
func (c customLogger) SetLevel(level logging.LogLevel) {
initLogger()
logLevel := strings.Trim(strings.ToUpper(logging.LogLevel.String(level)), "")
filter := &logutils.LevelFilter{
Levels: []logutils.LogLevel(logLevels),
MinLevel: logutils.LogLevel(logLevel),
Writer: os.Stderr,
}
log.SetOutput(filter)
}
开发者ID:tahitianstud,项目名称:utils,代码行数:14,代码来源:logger.go
示例20: Setup
// Setup is used to perform setup of several logging objects:
//
// * A LevelFilter is used to perform filtering by log level.
// * A GatedWriter is used to buffer logs until startup UI operations are
// complete. After this is flushed then logs flow directly to output
// destinations.
// * A LogWriter provides a mean to temporarily hook logs, such as for running
// a command like "consul monitor".
// * An io.Writer is provided as the sink for all logs to flow to.
//
// The provided ui object will get any log messages related to setting up
// logging itself, and will also be hooked up to the gated logger. The final bool
// parameter indicates if logging was set up successfully.
func Setup(config *Config, ui cli.Ui) (*logutils.LevelFilter, *GatedWriter, *LogWriter, io.Writer, bool) {
// The gated writer buffers logs at startup and holds until it's flushed.
logGate := &GatedWriter{
Writer: &cli.UiWriter{ui},
}
// Set up the level filter.
logFilter := LevelFilter()
logFilter.MinLevel = logutils.LogLevel(strings.ToUpper(config.LogLevel))
logFilter.Writer = logGate
if !ValidateLevelFilter(logFilter.MinLevel, logFilter) {
ui.Error(fmt.Sprintf(
"Invalid log level: %s. Valid log levels are: %v",
logFilter.MinLevel, logFilter.Levels))
return nil, nil, nil, nil, false
}
// Set up syslog if it's enabled.
var syslog io.Writer
if config.EnableSyslog {
retries := 12
delay := 5 * time.Second
for i := 0; i <= retries; i++ {
l, err := gsyslog.NewLogger(gsyslog.LOG_NOTICE, config.SyslogFacility, "consul")
if err != nil {
ui.Error(fmt.Sprintf("Syslog setup error: %v", err))
if i == retries {
timeout := time.Duration(retries) * delay
ui.Error(fmt.Sprintf("Syslog setup did not succeed within timeout (%s).", timeout.String()))
return nil, nil, nil, nil, false
} else {
ui.Error(fmt.Sprintf("Retrying syslog setup in %s...", delay.String()))
time.Sleep(delay)
}
} else {
syslog = &SyslogWrapper{l, logFilter}
break
}
}
}
// Create a log writer, and wrap a logOutput around it
logWriter := NewLogWriter(512)
var logOutput io.Writer
if syslog != nil {
logOutput = io.MultiWriter(logFilter, logWriter, syslog)
} else {
logOutput = io.MultiWriter(logFilter, logWriter)
}
return logFilter, logGate, logWriter, logOutput, true
}
开发者ID:pulcy,项目名称:vault-monkey,代码行数:64,代码来源:logger.go
注:本文中的github.com/hashicorp/logutils.LogLevel函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论