Beego日志框架采坑:配置日志输出到文件,只输出了启动时日志,后续日志无输出

golang学习笔记32——golang Beego 框架使用详解 Beego 框架是一个功能强大的 Go 语言 Web 应用框架,它提供了丰富的功能和工具,可以帮助开发者快速构建高效、稳定的 Web 应用。本文介绍了 Beego 框架的安装、创建项目、项目结构、配置文件、控制器、视图、路由和运行项目等方面的内容,并提供了代码示例。希望本文对大家学习和使用 Beego 框架有所帮助。希望本文对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。关注我看更多有意思的文章哦!👉👉。 阅读详情

①按照beego官方文档配置好日志输出到文件的策略:

// beego logs config
package config

import (
	"fmt"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
)

func init() {
	//logConf record code file and line
	logs.EnableFuncCallDepth(true)

	//enable async logConf
	//logs.Async()

	//get logConf conf
	logPath := beego.AppConfig.String("sys_log_path")
	maxsize := beego.AppConfig.DefaultInt("maxsize", 10) * 1024 * 1024
	maxDays := beego.AppConfig.DefaultInt("max_days", 7)

	//set common logger that saves all logConf
	logConf := fmt.Sprintf(`{"filename":"%s","maxsize":%d,"daily":true,"maxdays":%d,"rotate":true,"level":%d}`, logPath, maxsize, maxDays, logs.LevelDebug)
	err := logs.SetLogger(logs.AdapterFile, logConf)
	if err != nil {
		panic(err)
	}
}

②在main方法导入config包

package main

package main

import (
	"flag"
	"github.com/astaxie/beego"
	_ "networkmgr/config"
	_ "networkmgr/models/log"
	_ "networkmgr/routers"
)

func loadConfig() { 
	configpath := flag.String("config", "./conf/app.conf", "config:default is app.conf")
	flag.Parse()
	beego.LoadAppConfig("ini", *configpath)
	if beego.BConfig.RunMode == "dev" {
		beego.BConfig.WebConfig.DirectoryIndex = true
		beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
	}
}

func main() {
	loadConfig()
	beego.Run()
}

③启动项目,问题出现。日志文件只记录了动态路由生成日志,后续日志无记录。

④进入beego/logs源码进行debug,发现在后续日志记录时beegoLogger的outputs(输出终端)列表中只有console

⑤debug到①步的logs.SetLogger()方法中去,发现beegoLogger的outputs列表中有2个元素:console、file

⑥显而易见,在config包初始化log后,框架又对log的outputs值进行了修改,接下来就寻找哪里对outputs值进行了修改

⑦查找outputs的useage,发现beego/logs/log.go中的reset方法对其值进行了修改,比较可疑

⑧在reset方法处打断点,查看调用栈,发现reset方法在项目启动时有2处调用,一是beego包的init方法引起,但考虑到config包引入了beego包,所以config包的init方法是在beego包的init方法后执行,所以排除此处;二是在beego.LoadAppConfig()方法时间接调用了log的reset方法,重置了outputs

⑨至此问题原因找到,解决方法很简单,将初始化方法改名,并在main方法中的loadConfig方法之后手动调用

Beego框架实战教程: Beego框架介绍_beego框架教程 3)**模块化:**beego根据功能对代码进行节耦封装,形成了Session,Cache,Log,配置解析,性能监控,上下文操作,ORM等独立的模块,方便开发者进行使用。4)**高性能:**beego采用Go原生的http请求,goroutine的并发效率应付大流量的Web应用和API应用。大家需要记住beego的几个特性,一方面在面试过程中,如果有面试官问起大家关于goweb开发的相关知识的时候,有可能问beego框架有优势或者有什么特点,这个时候需要大家能够对beego框架这些特点做一个介绍; 阅读详情

相关推荐

从零到一:海外短剧成品系统源码搭建流程详解及APP+H5交付服务

在当今全球化的数字娱乐浪潮中,海外短剧市场以其独特的文化魅力和广阔的受众基础,正逐渐成为内容创作者与平台运营者争相布局的新蓝海。我为了紧跟时代的发展我翻看了大量的文章,偶然间看到了一篇文章点进去发现他们是专业做短剧开发的,总结下来在这篇文章里分享给大家。

liangyill_的博客 907

golang xorm 自定义日志记录器,使用zap实现日志输出、切割日志

golang xorm 自定义日志记录器,使用zap实现日志输出、切割日志

Yuuuuuubs的博客 2985

数据预处理的分箱操作

数据分箱 介绍 我们在建立模型前,一般需要对特征变量进行离散化,特征离散化后,模型会更稳定,降低模型过拟合的风险。尤其是采用 logsitic 建立评分卡模型时,必须对连续变量进行离散化。而特征离散化处理通常采用的就是分箱法,数据分箱(也称为离散分箱或分段)是一种数据预处理技术,用于减少次要观察误差的影响,提高泛化性。 数据分箱又分为有监督分箱和无监督分箱,是否使用标签进行离散化(分箱)决定了有监督还是无监督的离散化方法。 知识点 无监督分箱 split 分箱 merge 分箱 无监督分箱 这里为了

随笔记 5332

Beego框架logs模块

笔记

qq_44610809的博客 1251

【补充:脑电绘图教程 2】如何手动去除ICA伪迹分量

ICA可以将脑电信号分解为多个IC分量,由每个分量的平均功率地形图可以看出哪些分量属于伪迹,去除伪迹分量后,即可得到“干净”的脑电信号。本教程主要总结如何人工识别出ICA伪迹分量,不涉及ICA的原理讲解。本教程的主要知识来源是ICLabel官网ICLabel致力于自动识别IC分量属于哪种伪迹,并标记伪迹占比,可以在eeglabel中很方便地使用。ICLabel给出了几种常见伪迹的特点,本教程主要是根据ICLabel给出伪迹特点,对自己的数据集手动去除伪迹,以更深入了解自己数据集的质量和伪迹特点。

qq_40735196的博客 4230

动态库加载失败终极指南:从libbz2.so.1错误看Linux依赖管理本质

本文以经典的libbz2.so.1加载错误为例,深入剖析Linux动态链接库管理的核心机制。文章不仅提供从ldd检查、符号链接创建到LD_LIBRARY_PATH设置等实战解决方案,更系统性地讲解了动态链接器的寻库路径、版本管理及依赖问题预防策略,帮助开发者从根本上理解和掌握Linux依赖管理本质。

weixin_29212429的博客 446

Beego日志库打印到文件 go日志库的调用

go日志库的打印 打印样式 显示内容包括: (1)日志打印时间 (2)错误日志类型 (3)打印错误在文件中的位置 (4)错误信息 journal 介绍 beego日志库的一键调用 国内开源平台 gitee 地址为:https://gitee.com/bingcqust/journal 软件说明 一行代码即可使用beego自带的logs日志库,将logs输出转到文件上,生成独立的log文件夹,并按照日期(年月日)进行分割,调用简单,可视化强 安装教程 import 导入gitee.com/bingcqus

qq_43196500的博客 1079

告别理论劝退:用动画和Tanner图轻松理解QC-LDPC的译码原理(BP算法详解)

本文通过动画和Tanner图直观解析QC-LDPC码的BP译码原理,帮助读者轻松理解802.11ac协议中的编译码过程。文章详细展示了QC-LDPC的结构之美、BP算法的动态信息流动以及LLR的视觉化解读,并对比了硬判决算法的性能差异,为开发者和研究者提供了实用的可视化工具开发建议。

weixin_30411239的博客 492

beego中log日志日期问题

最近遇到了之前版本的beego的log日志代码中一个小问题,在输出的日志中,1-9月份都没问题,但是到了10月的时候的输出却依次大一个月,后来排查发现是代码中只用改一下就可以解决。 改了之后的代码,我把函数单独拎出来跑了一下,问题解决: package main import ( "fmt" "time" "unsafe" ) //formatTimeHeader函数来源于 astaxie\beego\logs\logger.go func formatTimeHeader(when time.T

weixin_43451928的博客 793

C#WPF常用的9种布局方式详解

本文介绍WPF中常用的九种布局,Grid、StackPanel、WrapPanel、DockPanel、UniformGrid、Canvas、ScrollViewer、ViewBox、Border。

qq_30725967的博客 1万+

Multisim14.0仿真应用设计(三十九)74LS183 高速全加器应用仿真

74LS183是一种高速全加器,可以同时执行四位二进制数的加法运算。它的输入端包括两个4位二进制数和一个进位信号,输出端则为一个4位二进制数和一个进位信号。

zhusl6688的博客 3848

[golang]-golang设置日志输出路径

在main.go添加如下配置 beego.SetLogger("file", `{"filename":"logs/test.log"}`) 直接这样配置 我mac上会有问题 进入logs文件夹提示权限问题 # mkdir logs或者重启项目会自动生成文件夹 mkdir logs # 不添加权限 日志文件不会生成和写入 chmod 755 logs # 重启项目 即可 需要重启项目 ...

爷来辣的博客 3620

手把手教你学Simulink——基于经典滤波器设计的场景:低通滤波器(LPF)的设计与频率响应仿真

滤波器是信号处理领域中非常重要的组件,用于去除不需要的频率成分或者提取有用的频率信息。低通滤波器(Low-Pass Filter, LPF)允许低于某个特定截止频率的信号通过,同时衰减高于该截止频率的信号。在本教程中,我们将学习如何使用设计一个简单的模拟低通滤波器,并对其频率响应进行仿真分析。本文介绍了如何使用设计一个简单的模拟低通滤波器,并通过仿真展示了其应用效果。通过这样的实践,您不仅能够加深对滤波器工作原理的理解,还能掌握利用Simulink进行滤波器设计与仿真的基本技能。

MHD0815的博客 5719

beego框架之日志模块

  参考beego开发文档:http://beego.me/docs/module/logs.md   beego框架之日志模块默认支持4种记录方式:   1. 终端输出(console) :这种方式一般用在开发环境下面,方便调试。   2. 本地文件(file) :这种方式一般用来保存常规日志,为生产环境中常用的方式。   3. 网络方式(network):这种方式可以用来将...

够浪 1881

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

beego的模块篇 - logs日志

beego 2.0版本的一个新特性是能够在日志发送到首选适配器之前对其应用自定义格式。

liu289747235的专栏 3884

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Go 之 Beego 配置文件

beego 目前支持 INI、XML、JSON、YAML 格式的配置文件解析,但是默认采用了 INI 格式解析。而配置文件的内容又包含 App配置、Web配置、监听配置、Session配置、Log配置。

evesmith520的博客 1240

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Beego Log日志模块配置及使用

由于首次接触beego,在使用log时, 1 目录结构 2 log 配置app.conf [log] log_level = 7 //debug级别 log_path = logs/app.log //指定log文件名 maxlines = 10 //log文件最大行数 maxsize = 1024 //log文件大小限制 后两项是控制log文件大小的,其中maxlines 超出后会自动生成新...

Martian 7742

beego日志

转自:https://blog.youkuaiyun.com/huwh_/article/details/77923570 1. 使用入门 beego 的日志处理是基于 logs 模块搭建的,内置了一个变量 BeeLogger,默认已经是 logs.BeeLogger 类型,初始化了 console,也就是默认输出到 console。 beego.Emergency("this is emerg...

zhuruxin1234的博客 2356

Beego Conf 文件配置解析

Beego 默认系统配置为conf文件夹下的app.conf文件;那么app.conf里面的具体配置属性都是什么意思,接下来一一的进行解释: beege程序默认app.conf 在beego程序中读取app.conf中的配置内容可以使用:beego.AppConfig.String("appname") app.conf系统配置内容 AppName应用名称,默认是 beego。通过 bee ne...

2834

GoWeb——Beego框架的使用

Beego是用Go语言开发的高效的HTTP框架,可以用来快速开发APl、Web应用及后端服务等各种应用。Beego是一个RESTful的框架,主要设计灵感来源于Tornado、Sinatra和Flask这3个框架。它还结合了Go语言自身的一些特性(接口、结构体嵌入等)。Beego是基于多个独立模块构建的,是一个高度解耦的框架。

吴声子夜歌的博客 6660

beego的一些坑

Beego的简介 中国人自己开发的Go应用框架,支持八大低耦合独立的模块,同时支持bee小工具,快速开发Go的应用程序,另外还自带了监控模块,类似于SpringBoot的 Actutar的功能 优点是大而全,缺点是过于臃肿了,在某些模块,比如mvc模块、orm模块,不如一些小而专的框架(Gin) Orm框架 MVC路由 日志模块 缓存模块 配置文件 session管理 RestFul 配置文件...

奔跑的蜗牛的博客 5097

【简单介绍下Beego框架,什么是Beego框架?】

👉Beego 是一个快速开发 Go 应用的 HTTP 框架,它可以用来快速开发 API、WEB 及后端服务等各种应用,是一个 RESTful 的框架,它抽象了 Web 应用的很多公共部分(路由、控制器、渲染、安全性等),因此可以快速开发 Web 应用。

cz88888888666的博客 1547

beego 例子_beego——日志处理

这是一个用来处理日志的库,它的设计思路来自于database/sql,目前支持的引擎有 file、console、net、smtp,可以通过如下方式进行安装:go get github.com/astaxie/beego/logs通用方式首先引入包:import ("github.com/astaxie/beego/logs")然后添加输出引擎(log 支持同时输出到多个引擎),这里我们以 co...

weixin_39860260的博客 790

Go Web框架-Beego

本文主要分享GO语言常用的web框架:Beego框架,简单分享如何快速入门BeegoBeego框架Beego框架的简介Beego框架是一款开源的由国人开发的全栈式的Web框架,它采用了MVC架构,支持自动化路由、ORM、Session、日志、缓存等功能,并提供了丰富的工具和库,适合快速构建Web应用。Beego 是一个 RESTful HTTP 框架,用于快速开发 Go 语言企业应用程序,例如 R...

m0_72418211的博客 1450

【Beego框架学习】

Beego框架学习

weixin_46356409的博客 2687

Beego框架实战教程: Beego框架介绍_beego框架教程(1)

*【注意】:**在安装的时候,有一点大家要注意,beego框架要求Go 语言版本1.1+以上,这个我们大家的版本应该至少也是1.9的吧,应该都没有。,这是一个get请求,请求到了后台以后,什么请求参数都没有,因此,就会被“/”拦截,执行到MainController中的代码,因为是get请求,所以这里自动找到Get函数并进行执行。3)**模块化:**beego根据功能对代码进行节耦封装,形成了Session,Cache,Log,配置解析,性能监控,上下文操作,ORM等独立的模块,方便开发者进行使用。

2401_86449716的博客 1250
上一篇: java项目制作成docker容器后,容器启动后马上挂掉,docker日志无异常信息
下一篇: Docker在多机器上搭建ES集群,各节点无法互通问题
slienceWater
博客等级 码龄7年 15粉丝 6原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值