本文整理汇总了Golang中github.com/cloudfoundry/hm9000/helpers/logger.Logger类的典型用法代码示例。如果您正苦于以下问题:Golang Logger类的具体用法?Golang Logger怎么用?Golang Logger使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Logger类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: ServeAPI
func ServeAPI(l logger.Logger, conf *config.Config) {
store := connectToStore(l, conf)
apiHandler, err := handlers.New(l, store, buildTimeProvider(l))
if err != nil {
l.Error("initialize-handler.failed", err)
panic(err)
}
handler := handlers.BasicAuthWrap(apiHandler, conf.APIServerUsername, conf.APIServerPassword)
listenAddr := fmt.Sprintf("%s:%d", conf.APIServerAddress, conf.APIServerPort)
members := grouper.Members{
{"api", http_server.New(listenAddr, handler)},
}
group := grouper.NewOrdered(os.Interrupt, members)
monitor := ifrit.Invoke(sigmon.New(group))
l.Info("started")
l.Info(listenAddr)
err = <-monitor.Wait()
if err != nil {
l.Error("exited", err)
os.Exit(1)
}
l.Info("exited")
os.Exit(0)
}
开发者ID:cgrotz,项目名称:hm9000,代码行数:32,代码来源:serve_api.go
示例2: connectToMessageBus
func connectToMessageBus(l logger.Logger, conf *config.Config) yagnats.NATSClient {
members := []yagnats.ConnectionProvider{}
for _, natsConf := range conf.NATS {
members = append(members, &yagnats.ConnectionInfo{
Addr: fmt.Sprintf("%s:%d", natsConf.Host, natsConf.Port),
Username: natsConf.User,
Password: natsConf.Password,
})
}
connectionInfo := &yagnats.ConnectionCluster{
Members: members,
}
natsClient := yagnats.NewClient()
err := natsClient.Connect(connectionInfo)
if err != nil {
l.Error("Failed to connect to the message bus", err)
os.Exit(1)
}
return natsClient
}
开发者ID:tomzhang,项目名称:golang-devops-stuff,代码行数:27,代码来源:common.go
示例3: ServeMetrics
func ServeMetrics(steno *gosteno.Logger, l logger.Logger, conf *config.Config) {
store := connectToStore(l, conf)
messageBus := connectToMessageBus(l, conf)
acquireLock(l, conf, "metrics-server")
collectorRegistrar := collectorregistrar.NewCollectorRegistrar(messageBus, steno)
metricsServer := metricsserver.New(
collectorRegistrar,
steno,
metricsaccountant.New(store),
l,
store,
buildTimeProvider(l),
conf,
)
err := metricsServer.Start()
if err != nil {
l.Error("Failed to serve metrics", err)
}
l.Info("Serving Metrics")
select {}
}
开发者ID:cgrotz,项目名称:hm9000,代码行数:25,代码来源:serve_metrics.go
示例4: connectToStore
func connectToStore(l logger.Logger, conf *config.Config) (store.Store, metricsaccountant.UsageTracker) {
if conf.StoreType == "etcd" || conf.StoreType == "ZooKeeper" {
adapter, workerPool := connectToStoreAdapter(l, conf)
return store.NewStore(conf, adapter, l), workerPool
} else {
l.Error(fmt.Sprintf("Unknown store type %s. Choose one of 'etcd' or 'ZooKeeper'", conf.StoreType), fmt.Errorf("Unkown store type"))
os.Exit(1)
}
return nil, nil
}
开发者ID:karlpilkington,项目名称:golang-devops-stuff,代码行数:11,代码来源:common.go
示例5: buildClock
func buildClock(l logger.Logger) clock.Clock {
if os.Getenv("HM9000_FAKE_TIME") == "" {
return clock.NewClock()
} else {
timestamp, err := strconv.Atoi(os.Getenv("HM9000_FAKE_TIME"))
if err != nil {
l.Error("Failed to load timestamp", err)
os.Exit(1)
}
return NewFixedClock(time.Unix(int64(timestamp), 0))
}
}
开发者ID:nagyistge,项目名称:hm9000,代码行数:12,代码来源:common.go
示例6: connectToStoreAdapter
func connectToStoreAdapter(l logger.Logger, conf *config.Config) (storeadapter.StoreAdapter, metricsaccountant.UsageTracker) {
var adapter storeadapter.StoreAdapter
workerPool := workerpool.NewWorkerPool(conf.StoreMaxConcurrentRequests)
adapter = etcdstoreadapter.NewETCDStoreAdapter(conf.StoreURLs, workerPool)
err := adapter.Connect()
if err != nil {
l.Error("Failed to connect to the store", err)
os.Exit(1)
}
return adapter, workerPool
}
开发者ID:tomzhang,项目名称:golang-devops-stuff,代码行数:12,代码来源:common.go
示例7: StartEvacuator
func StartEvacuator(l logger.Logger, conf *config.Config) {
messageBus := connectToMessageBus(l, conf)
store, _ := connectToStore(l, conf)
acquireLock(l, conf, "evacuator")
evacuator := evacuatorpackage.New(messageBus, store, buildTimeProvider(l), conf, l)
evacuator.Listen()
l.Info("Listening for DEA Evacuations")
select {}
}
开发者ID:KeyOfSpectator,项目名称:hm9000,代码行数:12,代码来源:start_evacuator.go
示例8: acquireLock
func acquireLock(l logger.Logger, conf *config.Config, lockName string) {
adapter, _ := connectToStoreAdapter(l, conf)
l.Info("Acquiring lock for " + lockName)
lock := storeadapter.StoreNode{
Key: "/hm/locks/" + lockName,
TTL: 10,
}
status, _, err := adapter.MaintainNode(lock)
if err != nil {
l.Error("Failed to talk to lock store", err)
os.Exit(1)
}
lockAcquired := make(chan bool)
go func() {
for {
if <-status {
if lockAcquired != nil {
close(lockAcquired)
lockAcquired = nil
}
} else {
l.Error("Lost the lock", errors.New("Lost the lock"))
os.Exit(197)
}
}
}()
<-lockAcquired
l.Info("Acquired lock for " + lockName)
}
开发者ID:tomzhang,项目名称:golang-devops-stuff,代码行数:34,代码来源:common.go
示例9: buildTimeProvider
func buildTimeProvider(l logger.Logger) timeprovider.TimeProvider {
if os.Getenv("HM9000_FAKE_TIME") == "" {
return timeprovider.NewTimeProvider()
} else {
timestamp, err := strconv.Atoi(os.Getenv("HM9000_FAKE_TIME"))
if err != nil {
l.Error("Failed to load timestamp", err)
os.Exit(1)
}
return &faketimeprovider.FakeTimeProvider{
TimeToProvide: time.Unix(int64(timestamp), 0),
}
}
}
开发者ID:tomzhang,项目名称:golang-devops-stuff,代码行数:14,代码来源:common.go
示例10: StartListeningForActual
func StartListeningForActual(l logger.Logger, c *cli.Context) {
conf := loadConfig(l, c)
messageBus := connectToMessageBus(l, conf)
store := connectToStore(l, conf)
listener := actualstatelistener.New(conf,
messageBus,
store,
timeprovider.NewTimeProvider(),
l)
listener.Start()
l.Info("Listening for Actual State", nil)
select {}
}
开发者ID:Zhann,项目名称:hm9000,代码行数:15,代码来源:start_listening_for_actual.go
示例11: connectToStoreAdapter
func connectToStoreAdapter(l logger.Logger, conf *config.Config, usage *usageTracker) storeadapter.StoreAdapter {
var adapter storeadapter.StoreAdapter
var around workpool.AroundWork = workpool.DefaultAround
if usage != nil {
around = usage
}
workPool := workpool.New(conf.StoreMaxConcurrentRequests, 0, around)
adapter = etcdstoreadapter.NewETCDStoreAdapter(conf.StoreURLs, workPool)
err := adapter.Connect()
if err != nil {
l.Error("Failed to connect to the store", err)
os.Exit(1)
}
return adapter
}
开发者ID:cgrotz,项目名称:hm9000,代码行数:16,代码来源:common.go
示例12: connectToStoreAdapter
func connectToStoreAdapter(l logger.Logger, conf *config.Config) (storeadapter.StoreAdapter, metricsaccountant.UsageTracker) {
var adapter storeadapter.StoreAdapter
workerPool := workerpool.NewWorkerPool(conf.StoreMaxConcurrentRequests)
if conf.StoreType == "etcd" {
adapter = etcdstoreadapter.NewETCDStoreAdapter(conf.StoreURLs, workerPool)
} else if conf.StoreType == "ZooKeeper" {
adapter = zookeeperstoreadapter.NewZookeeperStoreAdapter(conf.StoreURLs, workerPool, buildTimeProvider(l), time.Second)
} else {
l.Error(fmt.Sprintf("Unknown store type %s. Choose one of 'etcd' or 'ZooKeeper'", conf.StoreType), fmt.Errorf("Unkown store type"))
os.Exit(1)
}
err := adapter.Connect()
if err != nil {
l.Error("Failed to connect to the store", err)
os.Exit(1)
}
return adapter, workerPool
}
开发者ID:karlpilkington,项目名称:golang-devops-stuff,代码行数:19,代码来源:common.go
示例13: StartListeningForActual
func StartListeningForActual(l logger.Logger, conf *config.Config) {
messageBus := connectToMessageBus(l, conf)
store, usageTracker := connectToStoreAndTrack(l, conf)
acquireLock(l, conf, "listener")
listener := actualstatelistener.New(conf,
messageBus,
store,
usageTracker,
metricsaccountant.New(store),
buildClock(l),
l,
)
listener.Start()
l.Info("Listening for Actual State")
select {}
}
开发者ID:nagyistge,项目名称:hm9000,代码行数:19,代码来源:start_listening_for_actual.go
示例14: ServeAPI
func ServeAPI(l logger.Logger, conf *config.Config) {
store, _ := connectToStore(l, conf)
messageBus := connectToMessageBus(l, conf)
//no locking necessary for the api server. it's ok to have multiples of these running.
//NATS will distribute the requests and ensure that only one api-server handles a given request
//because we use a NATS queue.
apiServer := apiserver.New(
messageBus,
store,
buildTimeProvider(l),
l,
)
apiServer.Listen()
l.Info(fmt.Sprintf("Serving API over NATS (subject: app.state)"))
select {}
}
开发者ID:nkts,项目名称:golang-devops-stuff,代码行数:19,代码来源:serve_api.go
示例15: Daemonize
func Daemonize(
component string,
callback func() error,
period time.Duration,
timeout time.Duration,
logger logger.Logger,
adapter storeadapter.StoreAdapter,
) error {
logger.Info("Acquiring lock for " + component)
lostLockChannel, releaseLockChannel, err := adapter.GetAndMaintainLock(component, 10)
if err != nil {
logger.Info(fmt.Sprintf("Failed to acquire lock: %s", err))
return err
}
go func() {
<-lostLockChannel
logger.Error("Lost the lock", errors.New("Lock the lock"))
os.Exit(197)
}()
logger.Info("Acquired lock for " + component)
logger.Info(fmt.Sprintf("Running Daemon every %d seconds with a timeout of %d", int(period.Seconds()), int(timeout.Seconds())))
for {
afterChan := time.After(period)
timeoutChan := time.After(timeout)
errorChan := make(chan error, 1)
t := time.Now()
go func() {
errorChan <- callback()
}()
select {
case err := <-errorChan:
logger.Info("Daemonize Time", map[string]string{
"Component": component,
"Duration": fmt.Sprintf("%.4f", time.Since(t).Seconds()),
})
if err != nil {
logger.Error("Daemon returned an error. Continuining...", err)
}
case <-timeoutChan:
releaseLockChannel <- true
return errors.New("Daemon timed out. Aborting!")
}
<-afterChan
}
return nil
}
开发者ID:johntdyer,项目名称:golang-devops-stuff,代码行数:56,代码来源:daemon.go
示例16: FetchDesiredState
func FetchDesiredState(l logger.Logger, conf *config.Config, poll bool) {
store, _ := connectToStore(l, conf)
if poll {
l.Info("Starting Desired State Daemon...")
adapter, _ := connectToStoreAdapter(l, conf)
err := Daemonize("Fetcher", func() error {
return fetchDesiredState(l, conf, store)
}, conf.FetcherPollingInterval(), conf.FetcherTimeout(), l, adapter)
if err != nil {
l.Error("Desired State Daemon Errored", err)
}
l.Info("Desired State Daemon is Down")
os.Exit(1)
} else {
err := fetchDesiredState(l, conf, store)
if err != nil {
os.Exit(1)
} else {
os.Exit(0)
}
}
}
开发者ID:nkts,项目名称:golang-devops-stuff,代码行数:25,代码来源:fetch_desired_state.go
示例17: Analyze
func Analyze(l logger.Logger, conf *config.Config, poll bool) {
store := connectToStore(l, conf)
if poll {
l.Info("Starting Analyze Daemon...")
adapter := connectToStoreAdapter(l, conf, nil)
err := Daemonize("Analyzer", func() error {
return analyze(l, conf, store)
}, conf.AnalyzerPollingInterval(), conf.AnalyzerTimeout(), l, adapter)
if err != nil {
l.Error("Analyze Daemon Errored", err)
}
l.Info("Analyze Daemon is Down")
os.Exit(1)
} else {
err := analyze(l, conf, store)
if err != nil {
os.Exit(1)
} else {
os.Exit(0)
}
}
}
开发者ID:cgrotz,项目名称:hm9000,代码行数:25,代码来源:analyze.go
示例18: connectToMessageBus
func connectToMessageBus(l logger.Logger, conf *config.Config) yagnats.NATSConn {
members := make([]string, len(conf.NATS))
for _, natsConf := range conf.NATS {
uri := url.URL{
Scheme: "nats",
User: url.UserPassword(natsConf.User, natsConf.Password),
Host: fmt.Sprintf("%s:%d", natsConf.Host, natsConf.Port),
}
members = append(members, uri.String())
}
natsClient, err := yagnats.Connect(members)
if err != nil {
l.Error("Failed to connect to the message bus", err)
os.Exit(1)
}
natsClient.AddReconnectedCB(func(conn *nats.Conn) {
l.Info(fmt.Sprintf("NATS Client Reconnected. Server URL: %s", conn.Opts.Url))
})
natsClient.AddClosedCB(func(conn *nats.Conn) {
err := errors.New(fmt.Sprintf("NATS Client Closed. nats.Conn: %+v", conn))
l.Error("NATS Closed", err)
os.Exit(1)
})
return natsClient
}
开发者ID:nagyistge,项目名称:hm9000,代码行数:30,代码来源:common.go
示例19: connectToStoreAdapter
func connectToStoreAdapter(l logger.Logger, conf *config.Config) storeadapter.StoreAdapter {
var adapter storeadapter.StoreAdapter
workPool, err := workpool.NewWorkPool(conf.StoreMaxConcurrentRequests)
if err != nil {
l.Error("Failed to create workpool", err)
os.Exit(1)
}
options := &etcdstoreadapter.ETCDOptions{
ClusterUrls: conf.StoreURLs,
}
adapter, err = etcdstoreadapter.New(options, workPool)
if err != nil {
l.Error("Failed to create the store adapter", err)
os.Exit(1)
}
err = adapter.Connect()
if err != nil {
l.Error("Failed to connect to the store", err)
os.Exit(1)
}
return adapter
}
开发者ID:nagyistge,项目名称:hm9000,代码行数:25,代码来源:common.go
示例20: Send
func Send(l logger.Logger, conf *config.Config, poll bool) {
messageBus := connectToMessageBus(l, conf)
store, _ := connectToStore(l, conf)
if poll {
l.Info("Starting Sender Daemon...")
adapter, _ := connectToStoreAdapter(l, conf)
err := Daemonize("Sender", func() error {
return send(l, conf, messageBus, store)
}, conf.SenderPollingInterval(), conf.SenderTimeout(), l, adapter)
if err != nil {
l.Error("Sender Daemon Errored", err)
}
l.Info("Sender Daemon is Down")
os.Exit(1)
} else {
err := send(l, conf, messageBus, store)
if err != nil {
os.Exit(1)
} else {
os.Exit(0)
}
}
}
开发者ID:nkts,项目名称:golang-devops-stuff,代码行数:26,代码来源:send.go
注:本文中的github.com/cloudfoundry/hm9000/helpers/logger.Logger类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论