创意建设机械网站wordpress 加分类

pingmian/2025/10/10 18:20:50/文章来源:
创意建设机械网站,wordpress 加分类,柳州人社app下载,关键词推广怎么做本文将简单介绍loglus框架的基本使用#xff0c;并给出demo 文章目录 前言Loglus常见用法自定义日志级别使用字段钩子输出到多个位置使用钩子实现自定义日志处理demo 前言 Logrus 是一个用于 Go 语言的结构化日志框架#xff0c;它提供了丰富的日志级别、钩子和格式化选项。… 本文将简单介绍loglus框架的基本使用并给出demo 文章目录 前言Loglus常见用法自定义日志级别使用字段钩子输出到多个位置使用钩子实现自定义日志处理demo 前言 Logrus 是一个用于 Go 语言的结构化日志框架它提供了丰富的日志级别、钩子和格式化选项。 环境搭建 go get github.com/sirupsen/logrus代码中导入Loglus import (github.com/sirupsen/logrus )Loglus常见用法 自定义日志级别 可以添加一个 TraceLevel 级别来更详细地跟踪程序的执行流程 package mainimport (github.com/sirupsen/logrus )var TraceLevel logrus.Level(6)func main() {logger : logrus.New()logger.SetLevel(TraceLevel)logger.Trace(This is a trace level log) }使用字段钩子 使用字段钩子来在日志中添加额外的字段信息。例如你可以添加一个钩子来记录每条日志的时间戳 package mainimport (github.com/sirupsen/logrus )func main() {logger : logrus.New()logger.SetFormatter(logrus.JSONFormatter{})logger.AddHook(logrus.FieldHook{Field: timestamp,Func: func() (interface{}, error) {return time.Now().Format(2006-01-02T15:04:05.999Z07:00), nil},})logger.Info(This is a log entry with timestamp field) }输出到多个位置 可以将日志同时输出到多个位置比如标准输出和文件。以下是一个示例将日志同时输出到控制台和文件中 package mainimport (osiogithub.com/sirupsen/logrus )func main() {logger : logrus.New()// 设置日志级别和输出格式// 输出到控制台logger.SetOutput(os.Stdout)// 输出到文件file, err : os.OpenFile(logfile.log, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)if err nil {mw : io.MultiWriter(os.Stdout, file)logger.SetOutput(mw)} else {logger.Info(Failed to log to file, using default stderr)}logger.Info(This log entry will be output to both console and file) }使用钩子实现自定义日志处理 使用钩子来实现自定义的日志处理逻辑。例如你可以添加一个邮件钩子在产生错误日志时发送邮件通知 package mainimport (github.com/sirupsen/logrusnet/smtp )func main() {logger : logrus.New()// 设置日志级别和输出格式// 添加邮件钩子logger.AddHook(logrus.Hook{Levels: []logrus.Level{logrus.ErrorLevel, logrus.FatalLevel},Fire: func(entry *logrus.Entry) error {sendEmailNotification(entry.Message)return nil},})logger.Error(An error occurred, email notification will be sent) }func sendEmailNotification(message string) {// 实现发送邮件的逻辑 }demo 这里给出一个保存日志到项目log文件的示例 package middlewareimport (fmtgithub.com/gin-gonic/ginretalog github.com/lestrrat-go/file-rotatelogsgithub.com/rifflock/lfshookgithub.com/sirupsen/logruslogmathospathtime )// SetOutputFile 设置输出文件名称如果没有就创建 func SetOutputFile() (*os.File, string, error) {now : time.Now()logFilePath : if dir, err : os.Getwd(); err nil {logFilePath dir /logs}_, err : os.Stat(logFilePath)if os.IsNotExist(err) {if err : os.MkdirAll(logFilePath, 0777); err ! nil {log.Println(err.Error())return nil, , err}}logFileName : now.Format(2006-01-02) .logfilePath : path.Join(logFilePath, logFileName)if _, err : os.Stat(filePath); err ! nil {if _, err : os.Create(filePath); err ! nil {log.Println(err.Error())return nil, , err}}src, err : os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, 0755)if err ! nil {fmt.Println(err: , err)return nil, , err}log.Println(create log path: , filePath)return src, filePath, nil }// Logger 日志此操作可以复用 func Logger() gin.HandlerFunc {//建立软连接需要管理员权限linkName : latest_log.log//设置日志文件的路径src, filePath, _ : SetOutputFile()//创建日志logger : logrus.New()//输出logger.Out src//设置日志级别logger.SetLevel(logrus.DebugLevel)// 显示日志行数//logger.SetReportCaller(true)//添加时间分割logWriter, _ : retalog.New(filePath,retalog.WithMaxAge(14*24*time.Hour), //日志保留时间2周retalog.WithRotationTime(24*time.Hour), //24小时分割一次retalog.WithLinkName(linkName), //建立软连接)writeMap : lfshook.WriterMap{logrus.InfoLevel: logWriter,logrus.FatalLevel: logWriter,logrus.DebugLevel: logWriter,logrus.WarnLevel: logWriter,logrus.ErrorLevel: logWriter,logrus.PanicLevel: logWriter,}//实例化Hook : lfshook.NewHook(writeMap, logrus.TextFormatter{TimestampFormat: 2006-01-02 15:04:05,})logger.AddHook(Hook)return func(c *gin.Context) {startTime : time.Now()c.Next()stopTime : time.Since(startTime)spendTime : fmt.Sprintf(%d ms, int(math.Ceil(float64(stopTime.Nanoseconds()/1000000.0))))hostName, err : os.Hostname()if err ! nil {hostName unknown}statusCode : c.Writer.Status()clientIp : c.ClientIP()//userAgent : c.Request.UserAgent()dataSize : c.Writer.Size()if dataSize 0 {dataSize 0}method : c.Request.MethodrequestPath : c.Request.RequestURIentry : logger.WithFields(logrus.Fields{HostName: hostName,status: statusCode,SpendTime: spendTime,Ip: clientIp,Method: method,Path: requestPath,DataSize: dataSize,//Agent: userAgent, // TODO: UA})if len(c.Errors) 0 {entry.Error(c.Errors.ByType(gin.ErrorTypePrivate).String())}if statusCode 500 {entry.Error()} else if statusCode 400 {entry.Warn()} else {entry.Info()}} }在gin中调用Logger() r : gin.New()r.Use(gin.Recovery())r.Use(middleware.Logger())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云主机开网站教程射阳建设局网站

基于 eclipse-temurin 构建国内时区,地区,语言的镜像 使用场景自定Dockerfile构建自己的基础镜像构建本地镜像推送远程仓库 使用场景 在给应用构建自定义镜像时,往往需要在每次构建时去调整时区,地区这些东西;每次构建…

人网站建站想要给网站加视频怎么做

1 STL 的数值算法概述 STL 的数值算法提供了一系列用于处理数值计算的模板函数。这些算法主要针对容器中的元素进行数学运算和统计计算,使得程序员能够高效地处理数值数据。 STL 数值算法包括了一系列功能丰富的函数,例如 std::accumulate 用于计算容器…

惠州哪家做网站好河南那家做网站实力强

本篇文章 经过许多次的测试和修改已经完成了在Ubuntu7.10 下 安装配置 ApachePHPMySQL的所有的工作. 1、在Ubuntu7.10 下安装 Apache2PHP5MySQL sudo apt-get install apache2 libapache2-mod-php5 php5 php5-gd mysql-server php5-mysql phpmyadmin在下载来自动安装配置的时候…

专业电商网站建设多少钱阿里巴巴外贸圈

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

互联网站备案信息重庆施工许可证查询

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时,有几种不同的风格&#xf…

网站百度seo推广怎么做网站联系我们模板

一、篇头 全志H713平台,作为FHD投影的低成本入门方案,其公板上也配齐了许多投影使用的模组,本文即介绍投影仪调焦所用的步进电机,此模组的驱动原理、配制方法、调试方法。因为条件限制,本文采用的是H618香橙派Z3平台&…

网站页面策划怎么做北京66中网站做的不怎么样呀

DES: 这是一个新的游戏。给你一套牌、编号从1到100000.正常来说。你手中的牌和这次翻的牌是一样的,就会加一分。但是。如果是999的话。加三分。所以问你最大的分是多少。 貌似是简单的DP吧。(DP菜鸟...再简单我也不会...T_T...)于是...我看懂…

合适做服装的国际网站东莞企业网站建设开发

1、基本定义 广义定义:商品是为了出售而生产的劳动成果,人类社会生产力发展到一定历史阶段的产物,用于交换的劳动产品。 电商商品基本概念: 商品类目商品属性销售属性商品编码&商品规格编码SKU和SPU… 2、商品类目 电商平…

什么是网站建设方案书做网站项目的流程

一、面向对象类的设计:在程序开发中,要设计一个类,通常需要满足以下三个要求:1、类名 这类事物的名字,满足大驼峰命名法2、属性 这类事物具有什么样的特征3、 方法 这类事物具有什么样的行为eg:小明今年18岁&#xf…

在潮州哪里找做网站的wordpress二次开发手册chm

题目描述 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数 n (0 < n ≤ 999)和行数 m(0 < m ≤ 999),从左上角的 1 开始,按照顺时针螺旋向内写方式,依次写出2,3,....,n,最终形成一个 m 行矩阵。 小明对这个矩阵有些要求:…

app网站平台建设方案湘潭做网站 磐石网络很专业

一般来说绝大部分PC上装的系统均是windows&#xff0c;为了开发linux程序&#xff0c;会在PC上安装一个Vmware的虚拟机&#xff0c;在虚拟机上安装ubuntu18.04&#xff0c;由于windows上的代码查看软件、浏览器&#xff0c;通信软件更全&#xff0c;我们想只用ubuntu进行编译&a…

用sql2000做网站建设银行手机银行网站用户名

SELinux 安全模型——TE 首发公号&#xff1a;Rand_cs 通过前面的示例策略&#xff0c;大家对 SELinux 应该有那么点感觉认识了&#xff0c;从这篇开始的三篇文章讲述 SELinux 的三种安全模型&#xff0c;会涉及一些代码&#xff0c;旨在叙述 SELinux 内部的原理 SELinux 提供…

企业营销网站建设公司哪家好营销软文是什么意思

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/369/F 来源&#xff1a;牛客网 题目描述 现在你有 n 把灵剑&#xff0c;其中选择第i把灵剑会得到的 wiw_iwi​ 攻击力。 于此同时&#xff0c;还有q个约束&#xff0c;每个约束形如&#xff1a; …

wordpress改密码上海有什么seo公司

1.同步获取短视频 1.只要播放地址对Json数据解析&#xff0c;先把列表找出&#xff1a; 2.只想要所有的播放地址&#xff0c;通过列表表达式循环遍历这个列表拿到每个对象&#xff0c;再从一个个对象里面找到Video,再从Video里面找到播放地址(play_addr),再从播放地址找到播放…

电子商务网站建设 精品课上海建设摩托车官网报价

背景 项目需要使用微信公众号发消息&#xff0c;然后就来接入这个微信授权啦&#xff0c;微信公众号发消息前提是还需要用户先关注公众号~ 微信授权是有点恶心的&#xff0c;真的真的需要先配置好环境&#xff0c;开发的话目前是可以使用测试号申请公众号使用测试号的appid~ …

亿联时代网站建设游戏搭建平台

核心原理就是在四条边、四个顶点加上透明的div&#xff0c;给不同方向提供按下移动鼠标监听 &#xff0c;对应计算宽度高度、坐标变化 特性&#xff1a; 支持设置拖拽的最小宽度、最小高度、最大宽度、最大高度可以双击某一条边&#xff0c;最大化对应方向的尺寸&#xff1b;再…

电商网站建设与运营方向就业前景电子商务网站开发需求分析

动漫头像数据集是用于研究和分析动漫头像相关问题的数据集&#xff0c;它包含了大量的动漫风格的头像图像。动漫头像是指以动漫风格绘制的虚构人物的头像图像&#xff0c;常见于动画、漫画、游戏等媒体。 数据集点击下载&#xff1a;YOLO动漫头像数据集50800图片.rar

网站后台怎么做友情链接永久免费不收费的交友软件

转自 http://kuanghy.github.io/2015/12/30/sudo-vim :w !sudo tee %

建设网站 如何给文件命名产品外观设计流程

IMUL(有符号数乘法)指令执行有符号整数乘法。与 MUL 指令不同&#xff0c;IMUL 会保留乘 积的符号&#xff0c;实现的方法是&#xff0c;将乘积低半部分的最高位符号扩展到高半部分。x86 指令集支持三种格式的 IMUL 指令&#xff1a;单操作数、双操作数和三操作数。单操作数格式…

建设网站费用多少建浏览器网站制作

目录 一、四个坐标 二、两个坐标系的相互转换(齐次矩阵)