logrus_hook.go
package logrus_hook
import (
"runtime"
"strings"
"path/filepath"
log "github.com/Sirupsen/logrus"
)
type ContextHook struct {
}
func (hook ContextHook)Levels() []log.Level {
return log.AllLevels
}
func (hook ContextHook)Fire(entry *log.Entry) error {
pc := make([]uintptr, 10)
//表示自身栈中跳过6个栈帧数 并且把栈中剩余信息写入pc中。
//0表示Callers自身的调用栈,1表示Callers所在的调用栈
runtime.Callers(6, pc)
//
frames := runtime.CallersFrames(pc)
frame, _ := frames.Next()
funcName := frame.Func.Name()
funcName = funcName[strings.LastIndexByte(funcName, filepath.Separator) + 1 :]
fileName := frame.File[strings.LastIndexByte(frame.File, filepath.Separator) + 1:]
entry.Data["file"] = fileName
entry.Data["func"] = funcName
entry.Data["line"] = frame.Line
//for {
// frame, more := frames.Next()
// println(frame.File)
// println(frame.Func.Name())
// println(frame.Line)
// println("")
//
// if !more{
// break
// }
//}
return nil
}
func init() {
log.AddHook(ContextHook{})
}
logrus_hook.go的更多相关文章
随机推荐
- 和菜鸟一起学linux之linux性能分析工具oprofile移植
一.内核编译选项 make menuconfig General setup---> [*] Profiling support <*> OProfile system profil ...
- 译文:ovs+dpdk中的“vHost User NUMA感知”特性
本文描述了"vHost User NUMA感知"的概念,该特性的测试表现,以及该特性为ovs+dpdk带来的性能提升.本文的目标受众是那些希望了解ovs+dpdk底层细节的人,如果 ...
- Dubbo性能调优参数及原理
本文是针对 Dubbo 协议调用的调优指导,详细说明常用调优参数的作用域及源码. Dubbo调用模型 常用性能调优参数 参数名 作用范围 默认值 说明 备注 threads provider 200 ...
- List内存分配
当采用默认构造函数List<int> value = new List<int>();实例化一个List<T>对象时,.Net Framework只是在内存中申请了 ...
- 大型B2C网站高性能可伸缩架构技术探秘
大型B2C网站高性能可伸缩架构技术探秘 2010-07-21 08:51 狂放不羁 JavaEye 字号:T | T 向您介绍大型B2C网站高性能的网站架构技术,包括缓存的使用.应用程序和数据库的拆分 ...
- ThinkPHP5从零基础搭建CMS系统(一)
了解学习thinkphp5应该是2016年年底的事情,当时还没有接触过thinkphp3版本,觉得通过手册直接上手学习tp5蛮轻松的,现在从零记录下,搭建可扩展的CMS. 1.ThinkPHP环境搭建 ...
- 专业、稳定的微信域名被封检测API平台!
裂变程序最佳配套api,实时检测域名在微信中是否被封,防止见红 还在手动测试域名在微信是否可用?你OUT了! API文档:最简单的GET接口调用方式 API响应:毫秒级响应效率,100%准确率 AP ...
- 国内各大支付平台的API地址
1丶目前国内最火的支付平台--蚂蚁金服开放平台(支付宝) https://open.alipay.com/platform/home.htm 2丶国内游戏帝国--腾讯(微信支付) https://pa ...
- python+selenium 环境搭建以及元素定位
在给公司同事给培训了WEB自动化框架,现在和大家分享交流下
- .NET开发微信小程序(基础配置)
1.微信小程序的必备Model public class WxConfig { /// <summary> /// 小程序的appId /// 登录小程序可以直接看到 /// </s ...