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的更多相关文章
随机推荐
- 关于electron的sqlite3报错,需重新编译的问题
你需要安装sqlite3的所有依赖项,例如vs.python等.或者简单的npm安装命令,它会安装windows下的所有依赖. npm install -g windows-build-tools 然 ...
- PM2 Quick Start
PM2教程 @(Node)[负载均衡|进程管理器] [TOC] PM2简介 PM2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永 ...
- 01_Linux学习_基础知识
学Linux就学命令行 === cd / 转到根目录,相对当前路径 cd dev 转到dev目录 whoami 查阅当前用户 pwd 查阅当前目录 ls 查阅当前目录下的目录和文件 === Linux ...
- DB2常用命令2
1.启动实例(db2inst1):实例相当于informix中的服务 db2start 2.停止实例(db2inst1): db2stop 3.列出所有实例(db2inst1) db2ilist 4. ...
- 《深入理解JAVA虚拟机》笔记1
java程序运行时的内存空间,按照虚拟机规范有下面几项: )程序计数器 指示下条命令执行地址.当然是线程私有,不然线程怎么能并行的起来. 不重要,占内存很小,忽略不计. )方法区 这个名字很让我迷惑. ...
- spring:org.springframework.web.servlet.DispatcherServlet noHandlerFound解决方法
1.搜了许久: <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern& ...
- HTML Meta信息的优先级
一般来讲meta的信息都是不同维度的不会有冲突,不过下面两个有一定冲突: <meta name="renderer" content="webkit"&g ...
- Django error信息邮件通知功能配置部署
1. 最近QA成为项目的重点,除了突破依赖外部表的阻力开始启用单元测试,还有一点就是对在线的生产服务的错误信息启用这个邮件通知功能,下面简单说一下启用方法: 1.发送邮件账号配置配置: EMAIL_H ...
- 与班尼特·胡迪一起拿奖学金(HZNU-2273)
与班尼特·胡迪一起拿奖学金 AC Time Limit: 2 s Memory Limit: 256 MB Description 班尼特·胡迪这学期的体测终于上80分了,当期末考试的 ...
- 0基础一分钟入门Python
这篇文章面向所有想学python的小伙伴(甚至你从没听过编程),这篇文章将会带你以最快的速度入门python.赶快上车,时间来不及了... 一,下载和安装python 1.下载: 1.1 python ...