本文整理汇总了Golang中github.com/funkygao/log4go.Info函数的典型用法代码示例。如果您正苦于以下问题:Golang Info函数的具体用法?Golang Info怎么用?Golang Info使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Info函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: shutdown
func (this *Start) shutdown() {
// kill haproxy
log.Info("killling haproxy processes")
f, e := os.Open(haproxyPidFile)
if e != nil {
log.Error("shutdown %v", e)
return
}
reader := bufio.NewReader(f)
for {
l, e := gio.ReadLine(reader)
if e != nil {
// EOF
break
}
pid, _ := strconv.Atoi(string(l))
p := &os.Process{
Pid: pid,
}
if err := p.Kill(); err != nil {
log.Error(err)
} else {
log.Info("haproxy[%d] terminated", pid)
}
}
log.Info("removing %s", haproxyPidFile)
os.Remove(haproxyPidFile)
}
开发者ID:funkygao,项目名称:gafka,代码行数:32,代码来源:start.go
示例2: Main
func (this *Mirror) Main() (exitCode int) {
this.quit = make(chan struct{})
signal.RegisterHandler(func(sig os.Signal) {
log.Info("received signal: %s", strings.ToUpper(sig.String()))
log.Info("quiting...")
this.once.Do(func() {
close(this.quit)
})
}, syscall.SIGINT, syscall.SIGTERM)
limit := (1 << 20) * this.BandwidthLimit / 8
if this.BandwidthLimit > 0 {
this.bandwidthRateLimiter = ratelimiter.NewLeakyBucket(limit*10, time.Second*10)
}
log.Info("starting [email protected]%s", gafka.BuildId)
// pprof
debugAddr := ":10009"
go http.ListenAndServe(debugAddr, nil)
log.Info("pprof ready on %s", debugAddr)
z1 := zk.NewZkZone(zk.DefaultConfig(this.Z1, ctx.ZoneZkAddrs(this.Z1)))
z2 := zk.NewZkZone(zk.DefaultConfig(this.Z2, ctx.ZoneZkAddrs(this.Z2)))
c1 := z1.NewCluster(this.C1)
c2 := z2.NewCluster(this.C2)
this.runMirror(c1, c2, limit)
log.Info("bye [email protected]%s, %s", gafka.BuildId, time.Since(this.startedAt))
log.Close()
return
}
开发者ID:funkygao,项目名称:gafka,代码行数:35,代码来源:mirror.go
示例3: Start
func (this *mysqlStore) Start() error {
if err := this.refreshFromMysql(); err != nil {
// refuse to start if mysql conn fails
return err
}
// TODO watch KatewayMysqlDsn znode
go func() {
ticker := time.NewTicker(this.cf.Refresh)
defer ticker.Stop()
for {
select {
case <-ticker.C:
this.refreshFromMysql()
log.Info("manager refreshed from mysql")
case <-this.refreshCh:
this.refreshFromMysql()
log.Info("manager forced to refresh from mysql")
case <-this.shutdownCh:
log.Info("mysql manager stopped")
return
}
}
}()
return nil
}
开发者ID:chendx79,项目名称:gafka,代码行数:31,代码来源:db.go
示例4: Start
func (this *Monitor) Start() {
this.leader = true
this.leadAt = time.Now()
this.stop = make(chan struct{})
go func() {
log.Info("telemetry started: %s", telemetry.Default.Name())
if err := telemetry.Default.Start(); err != nil {
log.Error("telemetry: %v", err)
}
}()
this.inflight = new(sync.WaitGroup)
this.watchers = this.watchers[:0]
for name, watcherFactory := range registeredWatchers {
watcher := watcherFactory()
this.watchers = append(this.watchers, watcher)
watcher.Init(this)
log.Info("created and starting watcher: %s", name)
this.inflight.Add(1)
go watcher.Run()
}
log.Info("all watchers ready!")
<-this.stop
this.inflight.Wait()
log.Info("all watchers stopped")
}
开发者ID:funkygao,项目名称:gafka,代码行数:34,代码来源:monitor.go
示例5: reloadHAproxy
func (this *Start) reloadHAproxy() (err error) {
var cmd *exec.Cmd = nil
waitStartCh := make(chan struct{})
if this.starting {
log.Info("haproxy starting")
cmd = exec.Command(this.command, "-f", configFile) // TODO use absolute path
this.starting = false
go func() {
<-waitStartCh
log.Info("haproxy started")
if err := cmd.Wait(); err != nil {
log.Error("haproxy: %v", err)
}
}()
} else {
shellScript := fmt.Sprintf("%s -f %s/%s -sf `cat %s/%s`",
this.command, this.root, configFile, this.root, haproxyPidFile)
log.Info("haproxy reloading: %s", shellScript)
cmd = exec.Command("/bin/sh", "-c", shellScript)
go func() {
<-waitStartCh
log.Info("haproxy reloaded")
if err := cmd.Wait(); err != nil {
log.Error("haproxy: %v", err)
}
}()
}
if err = cmd.Start(); err == nil {
waitStartCh <- struct{}{}
}
return err
}
开发者ID:chendx79,项目名称:gafka,代码行数:35,代码来源:haproxy.go
示例6: Start
func (this *mysqlStore) Start() error {
if err := this.refreshFromMysql(); err != nil {
// refuse to start if mysql conn fails
return fmt.Errorf("manager[%s]: %v", this.Name(), err)
}
go func() {
ticker := time.NewTicker(this.cf.Refresh)
defer ticker.Stop()
for {
select {
case <-ticker.C:
if err := this.refreshFromMysql(); err != nil {
log.Error(err.Error())
} else {
log.Info("manager refreshed from mysql")
}
case <-this.refreshCh:
if err := this.refreshFromMysql(); err != nil {
log.Error(err.Error())
} else {
log.Info("manager forced to refresh from mysql")
}
case <-this.shutdownCh:
log.Info("mysql manager stopped")
return
}
}
}()
return nil
}
开发者ID:funkygao,项目名称:gafka,代码行数:35,代码来源:db.go
示例7: addPartition
func (this *Partition) addPartition(zkAddrs string, topic string, partitions int) error {
log.Info("adding partitions to topic: %s", topic)
cmd := pipestream.New(fmt.Sprintf("%s/bin/kafka-topics.sh", ctx.KafkaHome()),
fmt.Sprintf("--zookeeper %s", zkAddrs),
fmt.Sprintf("--alter"),
fmt.Sprintf("--topic %s", topic),
fmt.Sprintf("--partitions %d", partitions),
)
err := cmd.Open()
if err != nil {
return err
}
scanner := bufio.NewScanner(cmd.Reader())
scanner.Split(bufio.ScanLines)
for scanner.Scan() {
this.Ui.Output(color.Yellow(scanner.Text()))
}
err = scanner.Err()
if err != nil {
return err
}
cmd.Close()
log.Info("added partitions to topic: %s", topic)
return nil
}
开发者ID:chendx79,项目名称:gafka,代码行数:28,代码来源:partition.go
示例8: loadTemplates
func loadTemplates() {
if config.faeTemplateFile != "" {
body, err := ioutil.ReadFile(config.faeTemplateFile)
if err != nil {
log.Error("template[%s]: %s", config.faeTemplateFile, err)
} else {
faeTemplateContents = string(body)
log.Info("template[%s] loaded", config.faeTemplateFile)
}
}
if config.actorTemplateFile != "" {
body, err := ioutil.ReadFile(config.actorTemplateFile)
if err != nil {
log.Error("template[%s]: %s", config.actorTemplateFile, err)
} else {
maintainTemplateContents = string(body)
log.Info("template[%s] loaded", config.actorTemplateFile)
}
}
if config.maintainTemplateFile != "" {
body, err := ioutil.ReadFile(config.maintainTemplateFile)
if err != nil {
log.Error("template[%s]: %s", config.maintainTemplateFile, err)
} else {
maintainTemplateContents = string(body)
log.Info("template[%s] loaded", config.maintainTemplateFile)
}
}
}
开发者ID:lucmichalski,项目名称:fae,代码行数:34,代码来源:option.go
示例9: shutdown
func shutdown() {
log.Info("unregistering etcd")
engineRunner.UnregisterEtcd()
cleanup()
log.Info("Terminated")
os.Exit(0)
}
开发者ID:lucmichalski,项目名称:fae,代码行数:10,代码来源:cleanup.go
示例10: main
func (this *Start) main() {
ctx.LoadFromHome()
this.zkzone = zk.NewZkZone(zk.DefaultConfig(this.zone, ctx.ZoneZkAddrs(this.zone)))
zkConnEvt, ok := this.zkzone.SessionEvents()
if !ok {
panic("someone stealing my events")
}
registry.Default = zkr.New(this.zkzone)
log.Info("ehaproxy[%s] starting...", gafka.BuildId)
go this.runMonitorServer(this.httpAddr)
zkConnected := false
for {
instances, instancesChange, err := registry.Default.WatchInstances()
if err != nil {
log.Error("zone[%s] %s", this.zkzone.Name(), err)
time.Sleep(time.Second)
continue
}
if zkConnected {
if len(instances) > 0 {
this.reload(instances)
} else {
// resilience to zk problem by local cache
log.Warn("backend all shutdown? skip this change")
time.Sleep(time.Second)
continue
}
}
select {
case <-this.quitCh:
return
case evt := <-zkConnEvt:
if evt.State == zklib.StateHasSession && !zkConnected {
log.Info("zk connected")
zkConnected = true
} else if zkConnected {
log.Warn("zk jitter: %+v", evt)
}
case <-instancesChange:
log.Info("instances changed!!")
}
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:51,代码来源:start.go
示例11: StopRpcServe
func (this *Engine) StopRpcServe() {
log.Info("RPC server stopping...")
rpcServer := this.rpcServer.(*TFunServer)
rpcServer.Stop()
close(this.stopChan)
outstandingSessions := atomic.LoadInt64(&rpcServer.activeSessionN)
log.Warn("RPC outstanding sessions: %d", outstandingSessions)
this.svt.Flush()
log.Info("RPC server stopped gracefully")
}
开发者ID:lucmichalski,项目名称:fae,代码行数:15,代码来源:rpc.go
示例12: RunForever
func (this *controller) RunForever() (err error) {
log.Info("controller[%s] starting", this.Id())
if err = this.orchestrator.RegisterActor(this.Id(), this.Bytes()); err != nil {
return err
}
defer this.orchestrator.ResignActor(this.Id())
if err = manager.Default.Start(); err != nil {
return
}
log.Trace("manager[%s] started", manager.Default.Name())
go this.runWebServer()
jobDispatchQuit := make(chan struct{})
go this.dispatchJobQueues(jobDispatchQuit)
webhookDispatchQuit := make(chan struct{})
go this.dispatchWebhooks(webhookDispatchQuit)
select {
case <-jobDispatchQuit:
log.Warn("dispatchJobQueues quit")
case <-webhookDispatchQuit:
log.Warn("dispatchWebhooks quit")
}
manager.Default.Stop()
log.Trace("manager[%s] stopped", manager.Default.Name())
return
}
开发者ID:funkygao,项目名称:gafka,代码行数:34,代码来源:controller.go
示例13: discoverPeers
func (this *Peer) discoverPeers() {
defer func() {
this.c.Close() // leave the multicast group
}()
var msg peerMessage
reader := bufio.NewReader(this.c)
for {
// net.ListenMulticastUDP sets IP_MULTICAST_LOOP=0 as
// default, so you never receive your own sent data
// if you run both sender and receiver on (logically) same IP host
line, _, err := reader.ReadLine()
if err != nil {
log.Error(err)
continue
}
if err := msg.unmarshal(line); err != nil {
// Not our protocol, it may be SSDP or else
continue
}
log.Debug("received peer: %+v", msg)
neighborIp, present := msg["ip"]
if !present {
log.Info("Peer msg has no 'ip'")
continue
}
this.refreshNeighbor(neighborIp.(string))
}
}
开发者ID:justinblah,项目名称:fae,代码行数:33,代码来源:peer.go
示例14: Run
func (this *WatchActord) Run() {
defer this.Wg.Done()
ticker := time.NewTicker(this.Tick)
defer ticker.Stop()
jobQueues := metrics.NewRegisteredGauge("actord.jobqueues", nil)
actors := metrics.NewRegisteredGauge("actord.actors", nil)
orphan := metrics.NewRegisteredGauge("actord.orphan", nil)
backlog := metrics.NewRegisteredGauge("actord.backlog.30s", nil)
archive := metrics.NewRegisteredGauge("actord.archive.30s", nil)
webhooks := metrics.NewRegisteredGauge("actord.webhooks", nil)
for {
select {
case <-this.Stop:
log.Info("%s stopped", this.ident())
return
case now := <-ticker.C:
jLen, aLen, orphanN, backlogN, archiveN := this.watchJobs(now)
jobQueues.Update(jLen)
actors.Update(aLen)
orphan.Update(orphanN)
backlog.Update(backlogN)
archive.Update(archiveN)
this.watchWebhooks(webhooks, now)
}
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:31,代码来源:actord.go
示例15: RefreshBrokerList
// TODO from live meta or zk?
func (this *pubPool) RefreshBrokerList(brokerList []string) {
if len(brokerList) == 0 {
if len(this.brokerList) > 0 {
log.Warn("%s meta store found empty broker list, refresh refused", this.cluster)
}
return
}
setOld, setNew := set.NewSet(), set.NewSet()
for _, b := range this.brokerList {
setOld.Add(b)
}
for _, b := range brokerList {
setNew.Add(b)
}
if !setOld.Equal(setNew) {
log.Info("%s broker list from %+v to %+v", this.cluster, this.brokerList, brokerList)
// rebuild the kafka conn pool
this.brokerList = brokerList
this.Close()
this.buildPools()
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:26,代码来源:pubpool.go
示例16: Run
func (this *WatchZk) Run() {
defer this.Wg.Done()
ticker := time.NewTicker(this.Tick)
defer ticker.Stop()
qps := metrics.NewRegisteredGauge("zk.qps", nil)
conns := metrics.NewRegisteredGauge("zk.conns", nil)
znodes := metrics.NewRegisteredGauge("zk.znodes", nil)
deadNodes := metrics.NewRegisteredGauge("zk.dead", nil)
for {
select {
case <-this.Stop:
log.Info("zk.zk stopped")
return
case <-ticker.C:
r, c, z, d := this.collectMetrics()
if this.lastReceived > 0 {
qps.Update((r - this.lastReceived) / int64(this.Tick.Seconds()))
}
this.lastReceived = r
conns.Update(c)
znodes.Update(z)
deadNodes.Update(d)
}
}
}
开发者ID:chendx79,项目名称:gafka,代码行数:29,代码来源:zk.go
示例17: shutdown
func shutdown() {
cleanup()
log.Info("Terminated")
os.Exit(0)
}
开发者ID:justinblah,项目名称:fae,代码行数:7,代码来源:cleanup.go
示例18: Run
func (this *WatchSub) Run() {
defer this.Wg.Done()
this.zkclusters = this.Zkzone.PublicClusters() // TODO sync with clusters change
ticker := time.NewTicker(this.Tick)
defer ticker.Stop()
subLagGroups := metrics.NewRegisteredGauge("sub.lags", nil)
subConflictGroup := metrics.NewRegisteredGauge("sub.conflict", nil)
for {
select {
case <-this.Stop:
log.Info("kateway.sub stopped")
return
case <-ticker.C:
//lags := this.subLags() // DISABLED
subLagGroups.Update(int64(0))
conflictGroups := this.subConflicts()
subConflictGroup.Update(int64(conflictGroups))
}
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:26,代码来源:sub.go
示例19: statusHandler
// @rest GET /v1/status
func (this *manServer) statusHandler(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
log.Info("status %s(%s)", r.RemoteAddr, getHttpRemoteIp(r))
output := make(map[string]interface{})
output["options"] = Options
output["loglevel"] = logLevel.String()
output["manager"] = manager.Default.Dump()
pubConns := int(atomic.LoadInt32(&this.gw.pubServer.activeConnN))
subConns := int(atomic.LoadInt32(&this.gw.subServer.activeConnN))
output["pubconn"] = strconv.Itoa(pubConns)
output["subconn"] = strconv.Itoa(subConns)
output["hh_appends"] = strconv.FormatInt(hh.Default.AppendN(), 10)
output["hh_delivers"] = strconv.FormatInt(hh.Default.DeliverN(), 10)
output["goroutines"] = strconv.Itoa(runtime.NumGoroutine())
var mem runtime.MemStats
runtime.ReadMemStats(&mem)
output["heap"] = gofmt.ByteSize(mem.HeapSys).String()
output["objects"] = gofmt.Comma(int64(mem.HeapObjects))
b, err := json.MarshalIndent(output, "", " ")
if err != nil {
log.Error("%s(%s) %v", r.RemoteAddr, getHttpRemoteIp(r), err)
}
w.Write(b)
}
开发者ID:funkygao,项目名称:gafka,代码行数:28,代码来源:handler_man.go
示例20: createJobHandler
// @rest POST /v1/jobs/:appid/:topic/:ver
func (this *manServer) createJobHandler(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
topic := params.ByName(UrlParamTopic)
if !manager.Default.ValidateTopicName(topic) {
log.Warn("illegal topic: %s", topic)
writeBadRequest(w, "illegal topic")
return
}
realIp := getHttpRemoteIp(r)
if !this.throttleAddTopic.Pour(realIp, 1) {
writeQuotaExceeded(w)
return
}
hisAppid := params.ByName(UrlParamAppid)
appid := r.Header.Get(HttpHeaderAppid)
pubkey := r.Header.Get(HttpHeaderPubkey)
ver := params.ByName(UrlParamVersion)
if !manager.Default.AuthAdmin(appid, pubkey) {
log.Warn("suspicous create job %s(%s) {appid:%s pubkey:%s topic:%s ver:%s}",
r.RemoteAddr, realIp, appid, pubkey, topic, ver)
writeAuthFailure(w, manager.ErrAuthenticationFail)
return
}
cluster, found := manager.Default.LookupCluster(hisAppid)
if !found {
log.Error("create job %s(%s) {appid:%s topic:%s ver:%s} invalid appid",
r.RemoteAddr, realIp, hisAppid, topic, ver)
writeBadRequest(w, "invalid appid")
return
}
log.Info("create job[%s] %s(%s) {appid:%s topic:%s ver:%s}",
appid, r.RemoteAddr, realIp, hisAppid, topic, ver)
rawTopic := manager.Default.KafkaTopic(hisAppid, topic, ver)
if err := job.Default.CreateJobQueue(Options.AssignJobShardId, hisAppid, rawTopic); err != nil {
log.Error("create job[%s] %s(%s) {shard:%d appid:%s topic:%s ver:%s} %v",
appid, r.RemoteAddr, realIp, Options.AssignJobShardId, hisAppid, topic, ver, err)
writeServerError(w, err.Error())
return
}
if err := this.gw.zkzone.CreateJobQueue(rawTopic, cluster); err != nil {
log.Error("app[%s] %s(%s) create job: {shard:%d appid:%s topic:%s ver:%s} %v",
appid, r.RemoteAddr, realIp, Options.AssignJobShardId, hisAppid, topic, ver, err)
writeServerError(w, err.Error())
return
}
w.WriteHeader(http.StatusCreated)
w.Write(ResponseOk)
}
开发者ID:funkygao,项目名称:gafka,代码行数:61,代码来源:handler_man.go
注:本文中的github.com/funkygao/log4go.Info函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论