本文整理汇总了Golang中github.com/funkygao/log4go.Trace函数的典型用法代码示例。如果您正苦于以下问题:Golang Trace函数的具体用法?Golang Trace怎么用?Golang Trace使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Trace函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: housekeeping
func (q *queue) housekeeping() {
defer func() {
log.Trace("queue[%s] housekeeping done", q.ident())
q.wg.Done()
}()
log.Trace("queue[%s] start housekeeping...", q.ident())
purgeTick := time.NewTicker(q.purgeInterval)
defer purgeTick.Stop()
cursorChkpnt := time.NewTicker(time.Second)
defer cursorChkpnt.Stop()
for {
select {
case <-purgeTick.C:
if err := q.Purge(); err != nil {
log.Error("queue[%s] purge: %s", q.ident(), err)
}
case <-cursorChkpnt.C:
if err := q.cursor.dump(); err != nil {
log.Error("queue[%s] cursor checkpoint: %s", q.ident(), err)
}
case <-q.quit:
return
}
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:31,代码来源:housekeep.go
示例2: 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
示例3: watchDeadPartitions
func (this *pubStore) watchDeadPartitions() {
ticker := time.NewTicker(time.Minute * 2) // TODO
defer ticker.Stop()
var lastTopics = make(map[string]struct{})
for {
select {
case <-ticker.C:
deadPartitions := manager.Default.DeadPartitions()
for topic, dp := range deadPartitions {
this.markPartitionsDead(topic, dp)
lastTopics[topic] = struct{}{}
}
for lastDeadTopic := range lastTopics {
if _, present := deadPartitions[lastDeadTopic]; !present {
// this topic was marked dead last round, but this round it comes alive
log.Trace("%s come alive again", lastDeadTopic)
this.markPartitionsDead(lastDeadTopic, nil)
delete(lastTopics, lastDeadTopic)
}
}
case <-this.shutdownCh:
return
}
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:32,代码来源:pubstore.go
示例4: Start
func (this *subStore) Start() (err error) {
this.subManager = newSubManager()
this.wg.Add(1)
go func() {
defer this.wg.Done()
var remoteAddr string
for {
select {
case <-this.shutdownCh:
log.Trace("sub store[%s] stopped", this.Name())
return
case remoteAddr = <-this.closedConnCh:
this.wg.Add(1)
go func(id string) {
this.subManager.killClient(id)
this.wg.Done()
}(remoteAddr)
}
}
}()
return
}
开发者ID:funkygao,项目名称:gafka,代码行数:26,代码来源:substore.go
示例5: Start
func (this *pubStore) Start() (err error) {
if ctx.KafkaHome() == "" {
return fmt.Errorf("empty kafka_home in ~/.gafka.cf")
}
if !gio.DirExists(ctx.KafkaHome()) {
return fmt.Errorf("kafka not installed in %s, run 'gk deploy -kfkonly'", ctx.KafkaHome())
}
// warmup: create pools according the current kafka topology
for _, cluster := range meta.Default.ClusterNames() {
this.pubPools[cluster] = newPubPool(this, cluster,
meta.Default.BrokerList(cluster), this.pubPoolsCapcity)
}
this.wg.Add(1)
go func() {
defer this.wg.Done()
for {
select {
case <-meta.Default.RefreshEvent():
this.doRefresh()
case <-this.shutdownCh:
log.Trace("pub store[%s] stopped", this.Name())
return
}
}
}()
return
}
开发者ID:funkygao,项目名称:gafka,代码行数:32,代码来源:pubstore.go
示例6: Attr
func (f *File) Attr(ctx context.Context, o *fuse.Attr) error {
f.RLock()
defer f.RUnlock()
*o = f.attr
// calculate size
if !f.opened {
if err := f.dir.reconnectKafkaIfNecessary(); err != nil {
return err
}
latestOffset, err := f.dir.GetOffset(f.topic, f.partitionId, sarama.OffsetNewest)
if err != nil {
log.Error(err)
return err
}
oldestOffset, err := f.dir.GetOffset(f.topic, f.partitionId, sarama.OffsetOldest)
if err != nil {
log.Error(err)
return err
}
o.Size = uint64(latestOffset - oldestOffset)
} else {
o.Size = uint64(len(f.content))
}
log.Trace("File Attr, topic=%s, partitionId=%d, size=%d", f.topic, f.partitionId, o.Size)
return nil
}
开发者ID:funkygao,项目名称:gafka,代码行数:34,代码来源:file.go
示例7: Close
// Close stops the queue for reading and writing
func (q *queue) Close() error {
close(q.quit)
// wait for pump and housekeeping finish
q.wg.Wait()
q.mu.Lock()
defer q.mu.Unlock()
for _, s := range q.segments {
if err := s.Close(); err != nil {
return err
}
}
q.head = nil
q.tail = nil
q.segments = nil
log.Trace("queue[%s] dumping cursor", q.ident())
if err := q.cursor.dump(); err != nil {
return err
}
q.cursor = nil
return nil
}
开发者ID:funkygao,项目名称:gafka,代码行数:26,代码来源:queue.go
示例8: Warmup
func (this *Client) Warmup() {
var (
sess *mgo.Session
err error
t1 = time.Now()
)
for retries := 0; retries < 3; retries++ {
for _, server := range this.selector.ServerList() {
sess, err = this.getConn(server.Uri())
if err != nil {
log.Error("Warmup %v fail: %s", server.Uri(), err)
break
} else {
this.putFreeConn(server.Uri(), sess)
}
}
if err == nil {
break
}
}
if err == nil {
log.Trace("Mongodb warmup within %s: %+v",
time.Since(t1), this.freeconns)
} else {
log.Error("Mongodb failed to warmup within %s: %s",
time.Since(t1), err)
}
}
开发者ID:lucmichalski,项目名称:fae,代码行数:31,代码来源:client.go
示例9: do
func (this *profiler) do(callName string, ctx *rpc.Context, format string,
args ...interface{}) {
if this == nil {
return
}
elapsed := time.Since(this.t1)
slow := elapsed > config.Engine.Servants.CallSlowThreshold
if !(slow || this.on) {
return
}
body := fmt.Sprintf(format, args...)
if slow {
svtStats.incCallSlow()
header := fmt.Sprintf("SLOW=%s/%s Q=%s ",
elapsed, time.Since(this.t0), callName)
log.Warn(header + this.truncatedStr(body))
} else if this.on {
header := fmt.Sprintf("T=%s/%s Q=%s ",
elapsed, time.Since(this.t0), callName)
log.Trace(header + this.truncatedStr(body))
}
}
开发者ID:lucmichalski,项目名称:fae,代码行数:26,代码来源:prof.go
示例10: NewMessage
// NewMessage is the supported way to obtain a new Message. This makes
// use of a "slab allocator" which greatly reduces the load on the
// garbage collector.
func NewMessage(size int) *Message {
var ch chan *Message
for _, slabClass := range messagePool { // TODO binary search
if size <= slabClass.maxSize {
ch = slabClass.ch
size = slabClass.maxSize
break
}
}
var msg *Message
select {
case msg = <-ch:
default:
// message pool empty:
// too busy or size greater than largest slab class
log.Trace("allocating message memory pool: %dB", size)
msg = &Message{}
msg.slabSize = size
msg.bodyBuf = make([]byte, 0, msg.slabSize)
}
msg.Body = msg.bodyBuf
return msg
}
开发者ID:funkygao,项目名称:gafka,代码行数:29,代码来源:message.go
示例11: Close
// Close must be called before Recycle
func (this *syncProducerClient) Close() {
log.Trace("cluster[%s] closing kafka sync client: %d", this.cluster, this.id)
// will close the producer and the kafka tcp conn
this.SyncProducer.Close()
this.closed = true
}
开发者ID:funkygao,项目名称:gafka,代码行数:8,代码来源:pubclient.go
示例12: ReadAll
func (f *File) ReadAll(ctx context.Context) ([]byte, error) {
f.RLock()
defer f.RUnlock()
log.Trace("File ReadAll, topic=%s, partitionId=%d", f.topic, f.partitionId)
return f.content, nil
}
开发者ID:funkygao,项目名称:gafka,代码行数:8,代码来源:file.go
示例13: Release
func (f *File) Release(ctx context.Context, req *fuse.ReleaseRequest) error {
log.Trace("File Release, req=%#v, topic=%s, partitionId=%d", req,
f.topic, f.partitionId)
f.opened = false
close(f.closeCh)
f.content = make([]byte, 0, 16<<10)
return f.consumer.Close()
}
开发者ID:funkygao,项目名称:gafka,代码行数:8,代码来源:file.go
示例14: waitExit
func (this *subServer) waitExit(exit <-chan struct{}) {
<-exit
if this.httpServer != nil {
// HTTP response will have "Connection: close"
this.httpServer.SetKeepAlivesEnabled(false)
// avoid new connections
if err := this.httpListener.Close(); err != nil {
log.Error(err.Error())
}
log.Trace("%s on %s listener closed", this.name, this.httpServer.Addr)
}
if this.httpsServer != nil {
// HTTP response will have "Connection: close"
this.httpsServer.SetKeepAlivesEnabled(false)
// avoid new connections
if err := this.httpsListener.Close(); err != nil {
log.Error(err.Error())
}
log.Trace("%s on %s listener closed", this.name, this.httpsServer.Addr)
}
this.idleConnsLock.Lock()
t := time.Now().Add(time.Millisecond * 100)
for c := range this.idleConns {
c.SetReadDeadline(t)
}
this.idleConnsLock.Unlock()
if this.idleConnsWg.WaitTimeout(Options.SubTimeout) {
log.Warn("%s waiting for all connected client close timeout: %s",
this.name, Options.SubTimeout)
}
this.subMetrics.Flush()
this.timer.Stop()
this.gw.wg.Done()
close(this.closed)
}
开发者ID:funkygao,项目名称:gafka,代码行数:45,代码来源:server_sub.go
示例15: Warmup
func (this *ClientPool) Warmup() {
t1 := time.Now()
for _, client := range this.clients {
client.Warmup()
}
log.Trace("Memcache pool warmup within %s: %+v",
time.Since(t1), this.FreeConnMap())
}
开发者ID:lucmichalski,项目名称:fae,代码行数:9,代码来源:pool.go
示例16: KickLookupCache
func (this *StandardServerSelector) KickLookupCache(pool string, hintId int) {
if pool != this.conf.LookupPool || hintId == 0 {
return
}
key := this.lookupCacheKey(pool, hintId)
this.lookupCache.Del(key)
log.Trace("lookupCache[%s] kicked", key)
}
开发者ID:lucmichalski,项目名称:fae,代码行数:9,代码来源:selector_standard.go
示例17: asyncProducerFactory
func (this *pubPool) asyncProducerFactory() (pool.Resource, error) {
if len(this.brokerList) == 0 {
return nil, store.ErrEmptyBrokers
}
apc := &asyncProducerClient{
rp: this.asyncPool,
cluster: this.cluster,
id: atomic.AddUint64(&this.nextId, 1),
}
var err error
t1 := time.Now()
cf := sarama.NewConfig()
cf.Net.DialTimeout = time.Second * 4
cf.Net.ReadTimeout = time.Second * 4
cf.Net.WriteTimeout = time.Second * 4
cf.Metadata.RefreshFrequency = time.Minute * 10
cf.Metadata.Retry.Max = 3
cf.Metadata.Retry.Backoff = time.Millisecond * 10
cf.Producer.Flush.Frequency = time.Second * 10 // TODO
cf.Producer.Flush.Messages = 1000
cf.Producer.Flush.MaxMessages = 0 // unlimited
cf.Producer.RequiredAcks = sarama.NoResponse
cf.Producer.Partitioner = NewExclusivePartitioner
cf.Producer.Retry.Backoff = time.Millisecond * 10 // gk migrate will trigger this backoff
cf.Producer.Retry.Max = 3
if this.store.compress {
cf.Producer.Compression = sarama.CompressionSnappy
}
cf.ClientID = this.store.hostname
apc.AsyncProducer, err = sarama.NewAsyncProducer(this.brokerList, cf)
if err != nil {
return nil, err
}
log.Trace("cluster[%s] kafka async producer connected[%d]: %+v %s",
this.cluster, apc.id, this.brokerList, time.Since(t1))
// TODO
go func() {
// messages will only be returned here after all retry attempts are exhausted.
for err := range apc.Errors() {
log.Error("cluster[%s] kafka async producer: %v", this.cluster, err)
}
}()
return apc, err
}
开发者ID:funkygao,项目名称:gafka,代码行数:54,代码来源:pubfactory.go
示例18: Read
func (f *File) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error {
f.RLock()
defer f.RUnlock()
log.Trace("File Read, req=%#v, topic=%s, partitionId=%d", req,
f.topic, f.partitionId)
resp.Data = resp.Data[:req.Size]
resp.Data = f.content[req.Offset : req.Size+int(req.Offset)]
return nil
}
开发者ID:funkygao,项目名称:gafka,代码行数:11,代码来源:file.go
示例19: Open
func (f *File) Open(ctx context.Context, req *fuse.OpenRequest,
resp *fuse.OpenResponse) (fs.Handle, error) {
log.Trace("File Open, req=%#v, topic=%s, partitionId=%d", req,
f.topic, f.partitionId)
// Allow kernel to use buffer cache
resp.Flags &^= fuse.OpenDirectIO
f.opened = true
f.closeCh = make(chan struct{})
go f.readContent()
time.Sleep(time.Second * 2) // TODO
return f, nil
}
开发者ID:funkygao,项目名称:gafka,代码行数:15,代码来源:file.go
示例20: reconnectKafkaIfNecessary
// TODO when to close the kafka client?
func (d *Dir) reconnectKafkaIfNecessary() error {
if d.Client != nil {
return nil
}
kfk, err := sarama.NewClient(d.fs.zkcluster.BrokerList(), sarama.NewConfig())
if err != nil {
log.Error(err)
return err
}
d.Client = kfk
log.Trace("kafka %+v connected", d.fs.zkcluster.BrokerList())
return nil
}
开发者ID:chendx79,项目名称:gafka,代码行数:17,代码来源:dir.go
注:本文中的github.com/funkygao/log4go.Trace函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论