本文整理汇总了Golang中github.com/tideland/golib/logger.Infof函数的典型用法代码示例。如果您正苦于以下问题:Golang Infof函数的具体用法?Golang Infof怎么用?Golang Infof使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Infof函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestFiltering
// TestFiltering tests the filtering of the logging.
func TestFiltering(t *testing.T) {
assert := audit.NewTestingAssertion(t, true)
ownLogger := &testLogger{}
logger.SetLogger(ownLogger)
logger.SetLevel(logger.LevelDebug)
logger.SetFilter(func(level logger.LogLevel, info, msg string) bool {
return level >= logger.LevelWarning && level <= logger.LevelError
})
logger.Debugf("Debug.")
logger.Infof("Info.")
logger.Warningf("Warning.")
logger.Errorf("Error.")
logger.Criticalf("Critical.")
assert.Length(ownLogger.logs, 3)
logger.UnsetFilter()
ownLogger = &testLogger{}
logger.SetLogger(ownLogger)
logger.Debugf("Debug.")
logger.Infof("Info.")
logger.Warningf("Warning.")
logger.Errorf("Error.")
logger.Criticalf("Critical.")
assert.Length(ownLogger.logs, 5)
}
示例2: main
func main() {
config := cachet.Config
// TODO support log path
logger.SetLogger(logger.NewTimeformatLogger(os.Stderr, "2006-01-02 15:04:05"))
logger.SetLevel(logger.LevelDebug)
logger.Infof("System: %s, API: %s", config.SystemName, config.APIUrl)
logger.Infof("Starting %d monitors", len(config.MonitorConfigs))
// initialize monitors
var allMonitors []*cachet.Monitor
for _, monconf := range config.MonitorConfigs {
err, mon := cachet.NewMonitor(&monconf)
if err == nil {
err = cachet.SyncMonitor(mon)
if err != nil {
logger.Errorf("%v", err)
}
allMonitors = append(allMonitors, mon)
} else {
logger.Errorf("Parsing monitor error, skipping: %v", err)
}
}
ticker := time.NewTicker(time.Second * time.Duration(config.CheckInterval))
for range ticker.C {
for _, m := range allMonitors {
go m.Check()
}
}
}
示例3: logError
// logError finally checks logging and formatting before logging an error.
func (d *defaulter) logError(format string, err error) {
if !d.log {
return
}
format += ": %v"
if len(d.id) > 0 {
logger.Infof("(%s) "+format, d.id, err)
} else {
logger.Infof(format, err)
}
}
示例4: Get
func (th *TestHandler) Get(ctx web.Context) (bool, error) {
data := TestRequestData{ctx.Domain(), ctx.Resource(), ctx.ResourceID()}
switch {
case ctx.AcceptsContentType(web.ContentTypeXML):
logger.Infof("get XML")
ctx.WriteXML(data)
case ctx.AcceptsContentType(web.ContentTypeJSON):
logger.Infof("get JSON")
ctx.WriteJSON(data, true)
default:
logger.Infof("get HTML")
ctx.RenderTemplate("test:context:html", data)
}
return true, nil
}
示例5: Save
func (i *FileIndex) Save() error {
i.m.RLock()
defer i.m.RUnlock()
idxFile := i.file
if idxFile == "" {
err := fmt.Errorf("Yikes! Cannot save index to disk because no file was specified.")
return err
}
if !i.updated {
return nil
}
logger.Infof("Index has changed, saving to disk")
fp, err := ioutil.TempFile(path.Dir(idxFile), "idx-build")
if err != nil {
return err
}
zfp := zlib.NewWriter(fp)
i.updated = false
enc := gob.NewEncoder(zfp)
err = enc.Encode(i)
zfp.Close()
if err != nil {
fp.Close()
return err
}
err = fp.Close()
if err != nil {
return err
}
return os.Rename(fp.Name(), idxFile)
}
示例6: startNodeMonitor
func startNodeMonitor() {
// Never do this if serf isn't set up
if !config.Config.UseSerf {
return
}
go func() {
// wait 1 minute before starting to check for nodes being up
time.Sleep(1 * time.Minute)
ticker := time.NewTicker(time.Minute)
for _ = range ticker.C {
unseen, err := node.UnseenNodes()
if err != nil {
logger.Errorf(err.Error())
continue
}
for _, n := range unseen {
logger.Infof("Haven't seen %s for a while, marking as down", n.Name)
err = n.UpdateStatus("down")
if err != nil {
logger.Errorf(err.Error())
continue
}
}
}
}()
return
}
示例7: logCommand
// logCommand logs a command and its execution status.
func logCommand(cmd string, args []interface{}, err error, log bool) {
// Format the command for the log entry.
formatArgs := func() string {
if args == nil || len(args) == 0 {
return "(none)"
}
output := make([]string, len(args))
for i, arg := range args {
output[i] = string(valueToBytes(arg))
}
return strings.Join(output, " / ")
}
logOutput := func() string {
format := "CMD %s ARGS %s %s"
if err == nil {
return fmt.Sprintf(format, cmd, formatArgs(), "OK")
}
return fmt.Sprintf(format, cmd, formatArgs(), "ERROR "+err.Error())
}
// Log positive commands only if wanted, errors always.
if err != nil {
if errors.IsError(err, ErrServerResponse) || errors.IsError(err, ErrTimeout) {
return
}
logger.Errorf(logOutput())
} else if log {
logger.Infof(logOutput())
}
}
示例8: ProcessEvent
// ProcessEvent reads, validates and emits a configuration.
func (b *configuratorBehavior) ProcessEvent(event cells.Event) error {
switch event.Topic() {
case ReadConfigurationTopic:
// Read configuration
filename, ok := event.Payload().GetString(ConfigurationFilenamePayload)
if !ok {
logger.Errorf("cannot read configuration without filename payload")
return nil
}
logger.Infof("reading configuration from %q", filename)
cfg, err := etc.ReadFile(filename)
if err != nil {
return errors.Annotate(err, ErrCannotReadConfiguration, errorMessages)
}
// If wanted then validate it.
if b.validate != nil {
err = b.validate(cfg)
if err != nil {
return errors.Annotate(err, ErrCannotValidateConfiguration, errorMessages)
}
}
// All done, emit it.
pvs := cells.PayloadValues{
ConfigurationPayload: cfg,
}
b.cell.EmitNewContext(ConfigurationTopic, pvs, event.Context())
}
return nil
}
示例9: Stop
// Stop implements the Environment interface.
func (env *environment) Stop() error {
runtime.SetFinalizer(env, nil)
if err := env.cells.stop(); err != nil {
return err
}
logger.Infof("cells environment %q terminated", env.ID())
return nil
}
示例10: stop
// stop terminates the cell.
func (c *cell) stop() error {
c.emitTimeoutTicker.Stop()
err := c.loop.Stop()
if err != nil {
logger.Errorf("cell %q terminated with error: %v", c.id, err)
} else {
logger.Infof("cell %q terminated", c.id)
}
return err
}
示例11: jsonErrorReport
func jsonErrorReport(w http.ResponseWriter, r *http.Request, errorStr string, status int) {
logger.Infof(errorStr)
jsonError := map[string][]string{"error": []string{errorStr}}
w.WriteHeader(status)
enc := json.NewEncoder(w)
if err := enc.Encode(&jsonError); err != nil {
logger.Errorf(err.Error())
}
return
}
示例12: newCell
// newCell create a new cell around a behavior.
func newCell(env *environment, id string, behavior Behavior) (*cell, error) {
logger.Infof("cell '%s' starts", id)
// Init cell runtime.
c := &cell{
env: env,
id: id,
measuringID: identifier.Identifier("cells", env.id, "cell", id),
behavior: behavior,
emitters: newConnections(),
subscribers: newConnections(),
emitTimeoutTicker: time.NewTicker(5 * time.Second),
}
// Set configuration.
if bebs, ok := behavior.(BehaviorEventBufferSize); ok {
size := bebs.EventBufferSize()
if size < minEventBufferSize {
size = minEventBufferSize
}
c.eventc = make(chan Event, size)
} else {
c.eventc = make(chan Event, minEventBufferSize)
}
if brf, ok := behavior.(BehaviorRecoveringFrequency); ok {
number, duration := brf.RecoveringFrequency()
if duration.Seconds()/float64(number) < 0.1 {
number = minRecoveringNumber
duration = minRecoveringDuration
}
c.recoveringNumber = number
c.recoveringDuration = duration
} else {
c.recoveringNumber = minRecoveringNumber
c.recoveringDuration = minRecoveringDuration
}
if bet, ok := behavior.(BehaviorEmitTimeout); ok {
timeout := bet.EmitTimeout()
switch {
case timeout < minEmitTimeout:
timeout = minEmitTimeout
case timeout > maxEmitTimeout:
timeout = maxEmitTimeout
}
c.emitTimeout = int(timeout.Seconds() / 5)
} else {
c.emitTimeout = int(maxEmitTimeout.Seconds() / 5)
}
// Init behavior.
if err := behavior.Init(c); err != nil {
return nil, errors.Annotate(err, ErrCellInit, errorMessages, id)
}
// Start backend.
c.loop = loop.GoRecoverable(c.backendLoop, c.checkRecovering, id)
return c, nil
}
示例13: TestGoLogger
// Test logging with the go logger.
func TestGoLogger(t *testing.T) {
log.SetOutput(os.Stdout)
logger.SetLevel(logger.LevelDebug)
logger.SetLogger(logger.NewGoLogger())
logger.Debugf("Debug.")
logger.Infof("Info.")
logger.Warningf("Warning.")
logger.Errorf("Error.")
logger.Criticalf("Critical.")
}
示例14: Save
// Save freezes and saves the data store to disk.
func (ds *DataStore) Save(dsFile string) error {
if !ds.updated {
return nil
}
logger.Infof("Data has changed, saving data store to disk")
if dsFile == "" {
err := fmt.Errorf("Yikes! Cannot save data store to disk because no file was specified.")
return err
}
fp, err := ioutil.TempFile(path.Dir(dsFile), "ds-store")
if err != nil {
return err
}
zfp := zlib.NewWriter(fp)
fstore := new(dsFileStore)
dscache := new(bytes.Buffer)
objList := new(bytes.Buffer)
ds.m.RLock()
defer ds.m.RUnlock()
ds.updated = false
err = ds.dsc.Save(dscache)
if err != nil {
fp.Close()
return err
}
enc := gob.NewEncoder(objList)
defer func() {
if x := recover(); x != nil {
err = fmt.Errorf("Something went wrong encoding the data store with Gob")
}
}()
err = enc.Encode(ds.objList)
if err != nil {
fp.Close()
return err
}
fstore.Cache = dscache.Bytes()
fstore.ObjList = objList.Bytes()
enc = gob.NewEncoder(zfp)
err = enc.Encode(fstore)
zfp.Close()
if err != nil {
fp.Close()
return err
}
err = fp.Close()
if err != nil {
return err
}
return os.Rename(fp.Name(), dsFile)
}
示例15: TestLogLevelFiltering
// Test log level filtering.
func TestLogLevelFiltering(t *testing.T) {
assert := audit.NewTestingAssertion(t, true)
ownLogger := &testLogger{}
logger.SetLogger(ownLogger)
logger.SetLevel(logger.LevelDebug)
logger.Debugf("Debug.")
logger.Infof("Info.")
logger.Warningf("Warning.")
logger.Errorf("Error.")
logger.Criticalf("Critical.")
assert.Length(ownLogger.logs, 5)
ownLogger = &testLogger{}
logger.SetLogger(ownLogger)
logger.SetLevel(logger.LevelError)
logger.Debugf("Debug.")
logger.Infof("Info.")
logger.Warningf("Warning.")
logger.Errorf("Error.")
logger.Criticalf("Critical.")
assert.Length(ownLogger.logs, 2)
}