首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Golang:查找将输出打印到stdout的文件名和行号

Golang是一种开源的编程语言,它以其高效性能和简洁的语法而受到广泛关注。在Golang中,要查找将输出打印到stdout的文件名和行号,可以使用内置的runtime包和os包来实现。

首先,我们需要导入runtimeos包:

代码语言:go
复制
import (
    "runtime"
    "os"
)

然后,在需要查找文件名和行号的地方,可以使用runtime.Caller()函数来获取当前的文件名和行号:

代码语言:go
复制
_, file, line, _ := runtime.Caller(1)

这里的参数1表示获取调用runtime.Caller()的函数的上一层调用的文件名和行号。如果需要获取更深层次的调用信息,可以适当调整参数。

接下来,我们可以使用os.Stdout来获取标准输出的文件描述符,然后使用os.FileName()方法来获取文件名:

代码语言:go
复制
stdout := os.Stdout
filename := stdout.Name()

最后,我们可以将获取到的文件名和行号打印出来:

代码语言:go
复制
fmt.Printf("输出打印到stdout的文件名:%s\n", file)
fmt.Printf("输出打印到stdout的行号:%d\n", line)

这样就可以完整地实现查找将输出打印到stdout的文件名和行号的功能。

Golang的优势在于其并发性能和简洁的语法,适合构建高性能的云原生应用和分布式系统。它在网络通信、后端开发、微服务架构等方面有广泛的应用场景。

腾讯云提供了适用于Golang开发的云产品,例如云服务器CVM、云原生容器服务TKE、云函数SCF等。您可以通过访问腾讯云官网(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C语言打印程序行号、日期方便调试程序

一、前言 平时开发C语言程序时,经常需要调试代码,C语言有一些宏,可以打印出当前行号文件名称、日期、时间,对程序调试起到很大帮助,可以快速定位问题。...ANSIC标准定义了可供C语言使用预定义宏: __LINE__ : 在源代码中插入当前源代码行号 __FILE__ : 在源代码中插入当前源代码文件名 __DATE__ : 在源代码中插入当前编译日期...标识符__DATE____TIME__一般可以用来表示固件版本,方便了解运行程序是什么时候版本。 标识符__LINE__是一个整数,其他文件名称、日期、时间都是字符串。...); /* 强制刷新输出缓冲区 */ count = vfprintf(stderr, format, arg_data); /* 信息输出到标准出错流设备...); //int data=va_arg(ap,int); } USART1_Printf用法与printf是一样,通过这个函数就可以实现数据打印到任意地方,包括改成存储到SD卡上。

2.1K20
  • 接口测试基础——第4篇logging模块

    logging.info('info information') logging.warn('warning information') logging.basicConfig函数各参数: filename: 指定日志文件名...filemode: file函数意义相同,指定日志文件打开模式,’w’或’a’ format: 指定输出格式内容,format可以输出很多有用信息,如上例所示: %(levelno)s: 打印日志级别的数值...s: 打印日志的当前函数 %(lineno)d: 打印日志的当前行号 %(asctime)s: 打印日志时间 %(thread)d: 打印线程ID %(threadName)s: 打印线程名称 %(process...,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当streamfilename同时指定时,stream被忽略 4、日志同时输出到文件屏幕 import...级别或更高日志信息打印到标准错误,并将其添加到当前日志处理对象 console = logging.StreamHandler() console.setLevel(logging.INFO) formatter

    53640

    测试人员需要掌握Linux命令

    文件名 更改目录及目录下所有文件:chown -R zhangsan 目录名称 4、文件操作 1、文件创建(touch) touch 文件名 2、查看文件 cat 文件输出到屏幕上 cat -n...对输出内容,输出行号 cat -b 对非空白行输出编号 more 分屏输出文本内容 more -5 文件名 一次显示5行内容 more +5 文件名 从第5行开始显示 more -s 文件名 有连续两行以上空白行...-n +10 日志文件名 查看文件内容,从第10行至文件末尾 3、重定向 > :印到屏幕内容,输出到文档中 >>:印到屏幕内容,追加到文档中 例如: ls / > aa.txt 根目录下文件内容输出到...du -sh 文件名,查看文件大小 8、文件内容查找(grep) 查找文件内容 语法:grep [选项] "搜索内容" 文件名 例如:查找man_db.conf文件中MANDB_MAP gerp "...源文件 unzip -d [指定解压路径] 压缩文件 2、其他命令 which:查找命令在哪个位置 whereis:输出位置及对应文件名 who:查看所有登录用户 whoami:查看当前用户 sudo

    71011

    python之强大日志模块

    作者:txw1958 | 出处:博客园 | 2011/10/21 19:41:55 | 阅读43次 1.简单日志打印到屏幕 import logging logging.debug('This is...logging.warning('This is warning message') 屏幕上打印:WARNING:root:This is warning message 默认情况下,logging日志打印到屏幕...filemode: file函数意义相同,指定日志文件打开模式,'w'或'a' format: 指定输出格式内容,format可以输出很多有用信息,如上例所示: %(levelno)s: 打印日志级别的数值...,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当streamfilename同时指定时,stream被忽略 3.日志同时输出到文件屏幕 import..."或"POST"远程输出到HTTP服务器 由于StreamHandlerFileHandler是常用日志处理方式,所以直接包含在logging模块中,而其他方式则包含在logging.handlers

    37530

    Shell脚本攻略04-玩转文件描述符及重定向

    概述 文件描述符是与文件输入、输出相关联整数。它们用来跟踪已打开文件。 最常见文件描述符是stdin、 stdoutstderr。...理论知识 在编写脚本时候会频繁使用标准输入(stdin)、标准输出stdout标准错误(stderr)。 通过内容过滤输出重定向到文件是我们平日里基本任务之一。...它将stdout一份副本写入文件out.txt,同时另一份副本作为后续命令stdin。命令cat -n将从stdin中接收到每一行数据前加上行号并写入stdout....xiaogongjiang 也可以 /dev/stdin作为输出文件名来代替stdin。...类似地,使用 /dev/stderr代表标准错误, /dev/stdout代表标准输出。 这些特殊设备文件分别对应stdin、 stderrstdout

    86910

    python日志模块---logging

    1.日志打印到屏幕 1 import logging 2 3 logging.debug('This is debug message---by liu-ke') 4 logging.info('This...is info message---by liu-ke') 5 logging.warning('This is warning message---by liu-ke') 默认情况下,logging日志打印到屏幕...3 filemode: file函数意义相同,指定日志文件打开模式,'w'或'a' 4 format: 指定输出格式内容,format可以输出很多有用信息,如上例所示: 5 %(levelno...,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当streamfilename同时指定时,stream被忽略 3.日志同时输出到文件屏幕 1...logging几种handle方式如下: 1 logging.StreamHandler: 日志输出到流,可以是sys.stderr、sys.stdout或者文件 2 logging.FileHandler

    41420

    Go 每日一库之 zap

    同时SugarLogger还支持以w结尾方法,这种方式不需要先创建字段对象,直接字段名值依次放在参数中即可,如例子中Infow。...,默认为 JSON; OutputPaths:可以配置多个输出路径,路径可以是文件路径stdout(标准输出); ErrorOutputPaths:错误输出路径,也可以是多个; InitialFields...} 上面创建一个输出到标准输出stdout和文件server.logLogger。...zap提供了丰富选项供我们选择。 输出文件名行号 调用zap.AddCaller()返回选项设置输出文件名行号。但是有一个前提,必须设置配置对象Config中CallerKey字段。...有时我们稍微封装了一下记录日志方法,但是我们希望输出文件名行号是调用封装函数位置。

    1.6K31

    别在C++代码里乱打日志了,这才是正确日志姿势!

    其实在引言中已经提到了,实际软件项目的几乎每个过程,都离不开日志。初学代码时,Jungle第一行代码是实现打印“hello world”,打印到控制台。...比如,开发或调试时,简单信息直接就打印到软件某个界面上;测试或者交付客户时,最好将日志保存到文件里,这样可以保存尽可能多信息。...(代码中提供了日志级别输出位置setter、getter方法)。...lineNumber, // 行号 char* format, // 格式化 ...) { int ret = 0; // 获取日期时间...就是两个文件(头文件源文件)加入工程,包含头文件,再在需要log地方加上Jungle在日志类里定义宏即可。

    2.2K30

    python 写日志

    默认情况下,logging模块日志打印到屏幕上(stdout),日志级别为WARNING(即只有日志级别高于WARNING日志信息才会输出),日志格式如下图所示: ?...打印当前执行程序名称 %(funcName)s 打印日志的当前函数 %(lineno)d 打印日志的当前行号 %(asctime)s 打印日志时间 %(thread)d 打印线程id %(threadName...可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。若同时列出了filenamestream两个参数,则stream参数会被忽略。...%(pathname)s 调用日志输出函数模块完整路径名,可能没有 %(filename)s 调用日志输出函数模块文件名 %(module)s 调用日志输出函数模块名...格式要相对应,Year-4位,m-2位 以此类推 既输出到文件,又打印到terminal import logging filename = time.strftime('%Y-%m-%d', time.localtime

    1.1K10

    Python模块知识5:日志logging

    最常用操作有两类:配置发送日志消息。...2、handler:日志记录(log record)发送到合适目的地(destination),比如文件,socket等。...4、formatter:指定日志记录输出具体格式。formatter构造方法需要两个参数:消息格式字符串日期字符串,这两个参数都是可选。...logging.basicConfig函数各参数: filename: 指定日志文件名 filemode: file函数意义相同,指定日志文件打开模式,'w'或'a' format: 指定输出格式内容...,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当streamfilename同时指定时,stream被忽略 案例4:同时实现文件屏幕输出 importlogging

    75870

    从零实现ORM框架GeoORM-databasesql基础-01

    如果这些方法只接受 User 类型参数,那是很容易实现。但是 ORM 框架是通用,也就是说可以任意合法对象转换成数据库中记录。...这个简易 log 库具备以下特性: 支持日志分级(trace,info,debug,warn,error)。 不同层级日志显示时使用不同颜色区分。 显示打印日志代码对应文件名行号。...: 输出日期,文件名行号 //print( "\033[字背景颜色;字体颜色m字符串\033[0m" ) errorLog = log.New(os.Stdout, "\033[31m[error...= nil { myLog.Error(err) } return } 封装有 2 个目的,一是统一印日志(包括 执行SQL 语句错误日志)。...可以看到,每一行日志均标明了报错文件行号,而且不同层级日志颜色是不同

    48310

    Hacker基础之Linux篇:基础Linux命令三

    : -print [查找文件输出到标准输出] -exec command {} \; [查到文件执行command操作, {} \; 之间有空格] -ok [在操作前要询用户...一般常用几种用法情景: 1 目前目录及其子目录下所有延伸档名是.c文件列出来 find . -name "*.c" 2 目前目录其其下子目录中所有一般文件列出 find ....sdfd 3. cat cat命令用于连接文件并打印到标准输出设备上 ?...cat命令使用介绍: 命令格式:cat [选项] [文件名] 命令功能:cat命令用于连接文件并打印到标准输出设备上 命令常用参数选项说明: -n --number [由1开始对所有输出行数编号...注意这里是>,这个符号意思是覆盖源文件中内容 cat -n textfile1 > textfile2 2 把textfile1textfile2文档内容加上行号(空白行不加)之后内容附加到textfile3

    93260

    kali linux下常用bash命令

    [文件路径]:每隔2秒查看一下文件后10行 rm [文件名]:删除文件 rm [目录] -r:删除目录 cp [文件名] [新文件名]:复制文件并重命名 cp [目录路径] [新目录名]...-v表示排除 awk '{print $5}输出第五列 cut -d':' -f 1 以:分隔并输出第一部分 sort:排序 uniq:相同输出一个 >:写入文件 >>:写入文件且不覆盖,接着写...messages文件 find:查找文件或文件夹 -name/iname:后面接目标名 whereis:数据库中查找查找结果不完整,一般使用前先updatedb更新数据库 whereis -b nmap...:查找二进制文件,名字是nmap echo:后面接要输出内容,打印到控制台 vi:vim简称,一个非常复杂命令模式下文件编辑器,直接在vi后加要编辑文件名,基本用法:输入 :后输入命令,set...nu可以显示行号,:wq保存并退出,i 插入状态,a添加状态,可以编辑文本,通过方向键移动光标修改内容,修改后按esc退出到命令模式,可以继续输入:wq!

    1.8K40

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    -G 范本样式视为普通表示法来使用。 -h 在显示符合范本样式那一列之前,不标示该列所属文件名称。 -H 在显示符合范本样式那一列之前,标示该列文件名称。 -i 忽略字符大小写差别。...#alias grep=’grep --color=auto’ 2.3 常用示例 在文件中查找内容 成功会输出所有包含查找内容行,否则输出为空。...#两者效果相同,并且标记颜色 $ grep "bash" file_read.sh demo.sh #在file_read.sh demo.sh 内查找bash 在目录下查找内容 成功会输出文件名...:输出到标准输出STDOUT   满足模式:进行指定模式操作,再输出STDOUT 3、第二个特殊内存空间 :保持空间(hold space),临时保存操作在另一处内存 4、当执行pattern space... hold space相关选项时候会进行之间数据流编辑操作 5、最后根据操作执行hold space空间操作,选择性显示到STDOUT 3.3 选项参数 -c/--copy 用拷贝代替重命名 -e

    9.3K21

    grep 正则表达式及选项以及注意

    grep命令语法: 前面的名字由来部分已经明确告诉我们,grep作用是在一个或多个文件中查找茉个字符模式。egrepfgrep都只是grep变体,这里我们不做介绍。看一下grep语法结构。...) 只列出匹配行所在文件文件名(每个文件名只列一次),文件名之间用换行符分隔 -n 在每一行前面加上它在文件中相对行号 -s 无声操作,即只显示报错信息,用于检查退出状态 -v 反向查找,只显示不匹配行...-w 把表达式作为词来查找,就好像它被\夹着那样。...只适用于grep(并非所有版本grep都支持这一功能,譬如,SCO UNIX就不支持) grep简单示例: 例如第一个表格中,我想查找所有带有if行并且显示行号,如何查找呢?...grep -n if a.html 输出: 使用过程中,使用最多参数就是 -v ,但是用着并不爽。

    85920
    领券