【REST2SQL】08 日志重构增加输出到文件log.txt

这篇具有很好参考价值的文章主要介绍了【REST2SQL】08 日志重构增加输出到文件log.txt。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【REST2SQL】01RDB关系型数据库REST初设计
【REST2SQL】02 GO连接Oracle数据库
【REST2SQL】03 GO读取JSON文件
【REST2SQL】04 REST2SQL第一版Oracle版实现
【REST2SQL】05 GO 操作 达梦 数据库
【REST2SQL】06 GO 跨包接口重构代码
【REST2SQL】07 GO 操作 Mysql 数据库

原来的日志只输出到控制台,关闭控制台就没有了,重构一下,可以同时输出到控制台和磁盘文件log.txt.

1 创建日志包logger

【REST2SQL】08 日志重构增加输出到文件log.txt,REST2SQL,重构
在rest2sql/目录下创建日志子目录logger,在此目录下创建日志包文件logger.go,增加以下代码:

/*日志记录器*/

package logger

import (
	"fmt"
	"io"
	"log"
	"os"
	"strconv"
	"time"
)

// 日志计数器
var count int = 0

func Alog(isPrefix bool, logs ...interface{}) {
	fname := "Log" + time.Now().Format("2006-01-02") + ".txt"

	// 日志输出文件,没有log.txt会新建,有会追加日志
	file, err := os.OpenFile(fname, os.O_CREATE|os.O_APPEND|os.O_RDWR, os.ModePerm)
	if err != nil {
		return
	}
	defer file.Close()

	// 同时输出到标准输出流 和  文件
	multiWriter := io.MultiWriter(os.Stdout, file)
	log.SetOutput(multiWriter)

	//日志输出前缀
	if isPrefix {
		count++ //调用一次加1
		log.SetPrefix("   REST2SQL(" + strconv.Itoa(count) + ") @ ")
	}

	//日志输出内容
	logtext := ""
	for _, txt := range logs {
		logtext += fmt.Sprint(txt)
	}

	log.Printf(logtext)
}

2 调用示例

2.1 引用logger包

import ”rest2sql/logger“

2.2 需要写入日志的地方调用

// 打印配置信息
	logger.Alog(false, "config:", config.Conf)

		// 请求日志输入到标准输出 和 log.txt文件
		logstr := fmt.Sprintf(
			"\t\t%s\t\t%s\t\t%s\t\t%v",
			r.Method,
			r.RemoteAddr,
			r.RequestURI,
			time.Since(start),
		)
		logger.Alog(true,logstr)
		
//执行 sql并返回 json 结果
	logger.Alog(true, fmt.Sprint("deleteDel:", deleteSQL))

3 运行效果

3.1 控制台输出

【REST2SQL】08 日志重构增加输出到文件log.txt,REST2SQL,重构

3.2 日志文件记录

【REST2SQL】08 日志重构增加输出到文件log.txt,REST2SQL,重构

3.3 日志文件内容

【REST2SQL】08 日志重构增加输出到文件log.txt,REST2SQL,重构
OK ! ?文章来源地址https://www.toymoban.com/news/detail-790256.html

到了这里,关于【REST2SQL】08 日志重构增加输出到文件log.txt的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Logback日志记录只在控制台输出sql,未写入日志文件【解决】

    原因:持久层框架对于Log接口实现方式不一样,日记记录的位置及展示方式也也不一样 可以分别配置到两个环境中,dev用StdOutImpl,prod用Slf4jImpl或者其他的都行,具体需要看他是如何实现的,使用logger对象输出的都是会写入日志的,使用System.out或err的只会在控制台显示,以下是实验

    2024年02月09日
    浏览(44)
  • 21、p6spy输出执行SQL日志

    在开发的过程中,总希望方法执行完了可以看到完整是sql语句,从而判断执行的是否正确,所以就希望有一个可以打印sql语句的插件。 p6spy 是数据库动态监控的一种框架,是一个可以用来监控JDBC执行语句的开源产品,它可以使得数据库数据无缝拦截和操作,而不必对现有应

    2024年02月13日
    浏览(32)
  • Springboot应用中Mybatis输出SQL日志的三种方法

    目录 一、方法一:指定mybatis日志级别 二、方法二:配置mybatis-config.xml 三、方法三:指定整个mapper包下的日志级别

    2024年01月20日
    浏览(38)
  • springboot整合mybatis-plus的sql输出到日志文件上

    springboot整合mybatis-plus的sql输出到日志文件上 在平时的日常开发中,我们希望sql打印在控制台上,只要如下配置即可 但是在生产中如果希望sql输出到日志文件上,有几种方式可以实现,下面我就用项目中常用的两种方式(不引入第三方依赖) 一、修改yml文件配置即可 缺点:

    2024年02月01日
    浏览(40)
  • NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解[Text2SQL]

    NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理 NL2SQL任务的目标是将用户对某个数据库的自然语言问题转化为相应的

    2024年04月13日
    浏览(32)
  • NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解

    NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理 MindSQL 是一个 Python RAG(检索增强生成)库,旨在仅使用几行代码来简

    2024年04月27日
    浏览(32)
  • TEXT2SQL-顶峰:Vanna部署及介绍

    Vanna 是一款采用 MIT 许可的开源 Python RAG (检索增强生成)框架,用于生成 SQL 语句和相关功能。 如何使用 Vanna Vanna 的使用分为两个简单步骤 - 在你的数据上训练一个 RAG \\\"模型\\\",然后提出问题,该问题将返回可设置为自动在你的数据库上运行的 SQL 查询。 1. 在你的数据上训练一

    2024年02月22日
    浏览(29)
  • LLM在text2sql上的应用

    目前,大模型的一个热门应用方向text2sql它可以帮助用户快速生成想要查询的SQL语句。那对于用户来说,大部分简单的sql都是正确的,但对于一些复杂逻辑来说,需要用户在产出SQL的基础上进行简单修改,Text2SQL应用主要还是帮助用户去解决开发时间,减少开发成本。 Text to

    2024年02月08日
    浏览(29)
  • 【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题

    开发 Azure JS Function(NodeJS),使用 mssql 组件操作数据库。当SQL语句执行完成后,在Callback函数中执行日志输出 context.log(\\\" ...\\\") , 遇见如下错误: Warning: Unexpected call to \\\'log\\\' on the context object after function execution has completed. Please check for asynchronous calls that are not awaited or calls to \\\'done\\\' ma

    2024年02月03日
    浏览(38)
  • 大模型LLM在 Text2SQL 上的应用实践

    一、前言 目前,大模型的一个热门应用方向Text2SQL,它可以帮助用户快速生成想要查询的SQL语句,再结合可视化技术可以降低使用数据的门槛,更便捷的支持决策。本文将从以下四个方面介绍LLM在Text2SQL应用上的基础实践。 · Text2SQL概述 · LangChain基础知识 · 基于SQLDatabaseCha

    2024年01月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包