商业公链之区块链技术使用的常见库(二)------GO语言日志库"github.com/cihub/seelog"

莆田市C++专项选拔第一轮题4 现在小明同学想要从两堆硬币中各选择一枚硬币,使得两枚硬币的面值之和 不超过 k。不同的硬币组合,就算面值相同,也视为不同的方案。现在他把这些硬币分成了两堆,已知两堆硬币分别有 n 和 m 枚硬币。可选方案有: (1,2), (1,1), (1,1), (5,2), (5,1), (5,1),共 6 种。第一行三个整数 n, m, k,分别表示第一堆硬币的数量,第二堆硬币的数量,以及面值之和的上限。对于30%的数据,1 ≤ n , m ≤ 1000 , 1 ≤ b , c ≤ 1000。 阅读详情

GO语言日志库"github.com/cihub/seelog"

Seelog可以设置不同级别的日志库,过滤输出设定级别的日志,输出不同格式日志文件到终端或文件,根据触发日志名或者函数名区分不同日志,实现网络转发或者定期删除日志等功能。

日志级别分为:Trace(相比debug范围更广,适合release),debug(只适合debug开发版本,调试时更详细的了解系统运行状态),info(重要输出信息:用来反馈系统的当前状态给最终用户的,用于产品),warn(可修复,系统可继续运行下去),Error(可修复性,但无法确定系统会正常的工作下去),Critical(错误已经无法修复,必须停止运行,防止程序破坏)。

1.安装seelog日志库:

go get github.com/cihub/seelog

2.导入日志库:

import  log "github.com/cihub/seelog"

3.使用日志配置文件,生成记录器:

 logger, err := log.LoggerFromConfigAsFile("seelog.xml")

4.使用新的记录器进行替换记录:

log.ReplaceLogger(logger)

5.打印info级别日志:

log.Info("Hello from Seelog!")

6.启用协程刷新产生日志:

 defer log.Flush()

下面我们来介绍以下日志库配置文件seelog.xml,包括三个部分<exception> 是为特定的程序文件(filepattern)或函数(funcpattern)设定特殊的日志规则,<outputs>指定日志输出配置,<formats> 定制日志的输出格式:

<!-- type 设置记录器类型 https://github.com/cihub/seelog/wiki/Logger-types-reference

minlevel 设置日志最低级别; maxlevel 设置日志的最高级别,也可以通过 <seelog levels="trace,info,critical"> 设置日记级别,asynctimer异步记录 asyncinterval时间间隔大于日志消息-->

<seelog type="asynctimer" asyncinterval="5000000" minlevel="debug" maxlevel="error">

    <exceptions>

        <!-- <exception> 是为特定的程序文件(filepattern)或函数(funcpattern)设定特殊的日志规则 -->

        <exception funcpattern="*main.test*Something*" minlevel="info"/>

        <exception filepattern="*main.go" minlevel="error"/>

    </exceptions>



    <!-- <outputs> formatid 指定日志输出的格式(格式在<formats>标签中定义) -->

    <outputs formatid="main">

        <!-- <console> 标签表示输出到终端 -->

        <console/>



        <!-- <splitter> 用于细分<outputs>日志格式,内部支持:file(文件), rollingfile(滚动文件,自动清除过期),

        buffered(日志写到内存再写到文件), smtp(发送日志到邮件), con(网络转发) -->

        <splitter formatid="format1">

            <!-- log.log, log2.log将按<formats>标签中的id="format1"格式写入 -->

            <file path="log.log"/>

            <file path="log2.log"/>

        </splitter>

        <splitter formatid="format2">

            <file path="log3.log"/>

            <file path="log4.log"/>

        </splitter>



        <!-- <rollingfile>滚动文件(定期清除过期日志)

        formatid: 指定日志格式; type="size" 按大小; maxsize: 单日志文件最大大小; maxrools: 最大文件数 -->

        <rollingfile formatid="someformat" type="size" filename="./log/roll.log" maxsize="100" maxrolls="5" />



        <!-- <buffered> 将日志先存在内存中,定期写入文件,适合日志并发量较大或 IO 比较紧张的场合

        size: 缓存大小; flushperiod: 缓存间隔(毫秒) -->

        <buffered formatid="testlevels" size="10000" flushperiod="1000">

            <file path="./log/bufFileFlush.log"/>

        </buffered>



        <!-- <filter>用于单独处理某级别日志

        过滤日志,把级别是error的通过邮件smtp方式发送出去(一般会发给相应的运维人员) -->

        <filter levels="error">

            <file path="./log/error.log"/>

            <smtp senderaddress="noreply-notification-service@none.org"

                  sendername="Automatic notification service"

                  hostname="mail.none.org"

                  hostport="587"

                  username="nns"

                  password="123">

                <recipient address="john-smith@none.com"/>

                <recipient address="hans-meier@none.com"/>

            </smtp>

            <!-- 按tcp4网络协议发送日志 -->

            <conn net="tcp4" addr="server.address:5514" tls="true" insecureskipverify="true" />

        </filter>



    </outputs>



    <!-- <formats> 定制日志的输出格式

    https://github.com/cihub/seelog/wiki/Format-reference -->

    <formats>

        <format id="main" format="%Date(2006 Jan 02/3:04:05.000000000 PM MST) [%Level] %Msg%n"/>

        <format id="someformat" format="%Ns [%Level] %Msg%n"/>

        <format id="testlevels" format="%Level %Lev %LEVEL %LEV %l %Msg%n"/>

        <format id="usetags" format="<msg>%Msg</time>"/>

        <format id="format1" format="%Date/%Time [%LEV] %Msg%n"/>

        <format id="format2" format="%File %FullPath %RelFile %Msg%n"/>

    </formats>

</seelog>

大体框架:

<!-- 我只需要把日志按指定格式输出到终端 -->

<seelog type="asynctimer" asyncinterval="1000000" minlevel="debug" maxlevel="error">

    <outputs formatid="main">

        <!-- 仅输出到终端 -->

        <console/>

    </outputs>

    <formats>

        <!-- 设置格式 -->

        <format id="main" format="%UTCDate %UTCTime - [%LEV] - %RelFile - l%Line - %Msg%n"/>

    </formats>

</seelog>



<!-- ****** 我是分割线 ***** -->



<!-- 现在我想把日志输出到终端同时也把日志输出到文件 -->

<seelog type="asynctimer" asyncinterval="1000000" minlevel="debug" maxlevel="error">

    <outputs formatid="main">

        <console/>

        <!-- 输出到文件,且不同于终端的日志格式 -->

        <splitter formatid="format1">

            <file path="log.log"/>

        </splitter>

    </outputs>

    <formats>

        <!-- 设置格式 -->

        <format id="main" format="%UTCDate %UTCTime - [%LEV] - %RelFile - l%Line - %Msg%n"/>

        <format id="format1" format="%Date(2006 Jan 02/3:04:05.000000000 PM MST) [%Level] %Msg%n"/>

    </formats>

</seelog>

示例程序:阅读原文,用法文档:https://godoc.org/github.com/cihub/seelog#Info

希望大家关注我的微信公众号,日更一篇区块链技术博客不易,有疑问可以后台留言。

YOLOv11涨点改进 | 首发全网创新、主干改进篇 | AAAI 2026 | PartialNet 主干让 YOLOv11 更加强大!引入部分通道机制 和 部分注意力卷积,全方面提升了模型的性能 本文提出PartialNet主干网络改进YOLOv11的方法,通过部分通道机制(PCM)和部分注意力卷积(PATConv)提升模型效率。PartialNet将特征图通道拆分并应用不同操作,显著减少计算量和内存占用。主要创新包括:1)部分通道机制实现计算优化;2)三种注意力模块(PATch/PATsp/PATsf)增强特征提取;3)动态部分卷积(DPConv)自适应调整计算复杂度。文章详细提供了代码实现和YOLOv11集成方法。 阅读详情

相关推荐

自动驾驶仿真:Carsim、NI和VTD联合仿真课题二

文章目录前言一、设备配置1、硬件需求2、网络配置二、Carsim工程配置1、创建工程2、创建数据库3、参数配置三、VTD工程配置1、创建工程四、Veristand工程配置1、创建工程五、运行程序 前言 上篇文章《Carsim、NI和VTD联合仿真课题一》简单地介绍了三者之间的联合框架,以及NI与VTD之间简单的组包与拆包指导。这篇文章将要讲述的是如何将三个软件联合起来,如何设置软件参数,用最简单的方法把仿真车开起来。 一、设备配置 1、硬件需求 注:真正的做智能驾驶仿真项目,至少需要两台电脑,一台实时机

zataji的博客 1万+

seelog使用简介

1.安装"github.com/cihub/seelog" go getgithub.com/cihub/seelog 在安装之前需要先安装一个git:Git-2.29.2.3-64-bit.exe 下载地址https://blog.csdn.net/stephen_curry300/article/details/109938273 import ( log "github.com/cihub/seelog" "fmt" "time" ) 2.xml文件配置 //异步.

chenqianghqu的博客 1221

利用AI辅助工具Codex在30分钟内高效生成发明专利说明书草案

Codex 是什么?简单说,它是 OpenAI 推出的一个高级 AI 工作平台,最初定位是软件开发辅助工具,但现在它的能力边界已经远远超出了写代码。根据 OpenAI 官方信息,每周有超过 500 万人使用 Codex,其中 40% 的新用户是非开发者,包括分析师、营销人员、研究人员等。这意味着 Codex 正在从一个程序员专属工具,演变为一个面向广泛知识工作者的生产力中枢。 那么,它和我们今天要谈的“写发明专利”有什么关系?核心在于 Codex 的“角色专属插件”和“上下文构建”能力。它不再只是根据零散的

weixin_29053067的博客 318

golang第三方日志包seelog配置文件详解

开发任何项目,都离不开日志,配好自己的项目日志输出,往往是开发项目的前提。在golang中,seelog应该是比较有名的日志处理包了,功能非常强大,seelog官方文档 一、seelog主要功能 下面我们看看seelog有啥强大 设置不同级别的日志; 输出到终端或文件; 过滤指定级别日志; 定义多种不同的日志输出格式; 根据触发日志的文件名或者函数名来区别输出日志; 通过 SMTP 或 T...

每天的表现,未来的必然! 1万+

SAP-MM-采购过账接口(与WMS集成)-代码

1、判断传入值非空检验; 2、判断过账日期是否允许在当前期间; 3、判断是否为集采订单业务,是否审批完成; 4、判断是否发布标准成本发布(此业务场景与价格控制3+S有关) 5、保存日志表; 6、判断业务公司订单审批状态; 7、创建STO交货单、集采公司订单过账、STO公司间创建交货单、交货单过账(两步法)、过账失败回滚(冲销交货、删除交货单、冲销集采入库)

qq_32198063的博客 420

【Yolo12改进策略】MRFA 小核协同,构建巨大的感受野,同时保持高斯型分布|即插即用|ICCV2025

本文将介绍如何将 UniConvNet 论文中的核心模块——感受野聚合器集成到 Yolo12中,通过一种新颖的“小核协同”范式,在不显著增加计算开销的前提下,显著提升模型的感受野质量和检测精度。在目标检测中,模型要识别一个物体,不仅需要看到物体的局部特征,更需要理解其周围的上下文信息。传统卷积网络通过堆叠小卷积核(如 3x3)来扩大“感受野”,但这个过程缓慢且效率低下。而近期流行的大核卷积,虽然感受野大,但会破坏“距离越近、影响越大”的自然分布,且带来巨大的计算负担。MRFA 找到了一条“中间道路”:它通过

m0_47867638的博客 929

H-Viewer站点规则分享:如何导入与使用社区精选的优质内容源

H-Viewer是一款功能强大的Android订阅阅读器应用,它通过选择器和正则表达式来获取网络内容,让用户能够自定义自己的阅读体验。本文将详细介绍如何导入和使用社区精选的站点规则,帮助你轻松扩展H-Viewer的内容来源。 ## 了解H-Viewer站点规则 站点规则是H-Viewer的核心功能之一,它定义了应用如何从特定网站获取和解析内容。每个站点规则通常包含网站的基本信息、内容选择器、正

gitblog_01004的博客 626

二、Creo模型的功能函数 例如:模型(元件)的干涉........

【代码】模型(元件)的干涉。

行为艺术家Zzz的博客 613

Paddy插件开发指南:如何为你的Sketch工作流定制自动化规则

Paddy是一款强大的Sketch插件,它能为你的设计图层提供自动化的内边距、间距和对齐功能。无论你是UI设计师还是前端开发者,掌握Paddy插件的定制开发都能显著提升你的工作效率,让设计工作流更加顺畅高效。 ## 为什么选择Paddy插件进行定制开发? Paddy插件之所以成为设计师的得力助手,源于其独特的优势: - **完全自动化**:不同于其他需要手动触发的插件,Paddy会在你操作图

gitblog_00097的博客 464

Vue3 - 实现内网使用天地图离线地图,详解项目加载天地图的离线地图服务器部署与使用教程示例源码,vue3如何实现天地图的离线加载部署在内网访问(天地图资源下载/瓦片等流程教学,实现天地图各种功能)

Vue3中加载天地图的离线地图,天地图——内网使用离线地图,vue3+leaflet实现天地图离线访问,vue3项目中利用leaflet使用天地图,vue3项目中使用天地图离线地图,天地图离线瓦片的打包与发布(GeoServer)天地图离线瓦片数据下载及本地化部署,在内网中无法直接使用外网天地图资源怎么办,在vue3中openLayers加载地图 -使用天地图的瓦片数据。VUE3天地图离线怎么使用,内网部署天地图,天地图离线瓦片,部分瓦片数据,天地图如何离线,无需网络调用天地图API,vue天地图离线地图,

🏆 前端领域优质创作者 1万+

xtop:multi_driven_net与incomplete_timing_cell fail reason 分析

man multi_driven_net”可以得知,这个问题是multi driven结构引起的,使用命令“get_failed_pins -reason multi_driven_net”,获取violation pin。“man incomplete_timing_cell”可以得知,这个fail reason的原因是缺少timing library cell,检查并补全后这个错误就显示了。这里选择的解决方法是修改lib文件,把inout改成input,重新lib2idb。通过这种方法解决了问题。

m0_61544122的博客 566

go第三方日志系统-seelog-Basic sections

https://github.com/cihub/seelog 文档学习:https://github.com/cihub/seelog/wiki 1.安装: go get github.com/cihub/seelog 2.快速启动 Seelog的设计非常方便。它的默认配置和包级别的日志记录器是现成的,所以开始你只需要两行代码: package main im...

weixin_34259559的博客 434

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

go 日志(log4 + logrus)

1.使用%v打印错误, log.Error("net.ListenTCP(\"tcp4\",\"%s\")error(%v)",bind,err) type TestV struct{ iday int64 strInfo string } testV := &TestV{iday : 50, strInfo : "xiaoyu"} log.Error("%v", *t...

xiaoxiaoyu85的专栏 565

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

golang 日志框架 seelog 使用:案例 (进阶)

golang 日志框架 seelog 使用:案例初文件目录配置文件seelog.xml代码SeelogHelp.gomain.go效果: 初 高性能日志框架:seelog,使用的好,可以提升很多开发效率,有时候做大型高并发的时候,我们需要用日志去检查很多问题,那么接下来介绍一个非常简单的小案例。 github : https://github.com/cihub/seelog 文件目录 配置文件 参考:https://www.cnblogs.com/hezhixiong/p/9844309.html 我改

二等碗 2088

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

seelog 日志滚动配置

go seelog日志滚动配置

顺心意 3657

Golang seelog 使用入门简介

1 首先安装Seelog库 go get github.com/cihub/seelog 2 简单的日志输出 参考官方文档,些一个快速开始的 hello world 程序: package main import log "github.com/cihub/seelog" func main() { defer log.Flush() log.Inf

独一无二的小个性 5118

Obsidian i18n终极指南:3步让任何插件说中文

你是否曾因Obsidian插件全是英文界面而感到困惑?每次打开设置页面,面对满屏的专业术语,需要反复查词典才能理解功能含义?Obsidian i18n作为专为Obsidian设计的国际化插件,通过创新的可视化编辑器和AI翻译技术,让你无需编程知识也能轻松实现插件界面中文化。这个强大的工具能让你在5分钟内完成插件翻译,彻底告别语言障碍。 ## 🎯 为什么你需要Obsidian i18n? ##

gitblog_00027的博客 599

Go中的日志及第三方日志包logrus

有别的语言使用基础的同学工作中都会接触到日志的使用,Go中自然也有log相关的实现。Go log模块主要提供了3类接口,分别是 “Print 、Panic 、Fatal ”,对每一类接口其提供了三种调用方式,分别是 “Xxxx 、Xxxxln 、Xxxxf”,基本和fmt中的相关函数类似。 1. Go中的log包 1. 基本使用 log.Print:打印日志,和fmt包没什么区别,只是加上了上面...

rickiyang的博客 3810

Golang日志--Seelog的简单用法

Beego自带的log包虽然功能比较完善,但是在日志中会带上日志级别的时间戳,而且这个时间戳还删除不了。 因为项目需要,所以研究了下Golang中其他的日志包,发现seelog正好能满足俺们项目的需要,因此在这做简单介绍。 seelog的地址:"github.com/cihub/seelog" seelog功能强大,在此简单介绍将日志配置保存在xml文件中,并从文件中获取配置,然后使用的流程

stevefang的专栏 9700

gothub使用

https://blog.csdn.net/lonyw/article/details/75392410

flyDeDog的博客 1537

gocron mysql_[日常] gocron源码阅读-使用go mod管理依赖源码启动gocron

从 Go1.11 开始,golang 官方支持了新的依赖管理工具go modgo mod download: 下载依赖的 module 到本地 cachego mod edit: 编辑 go.modgo mod graph: 打印模块依赖图go mod init: 在当前目录下初始化 go.mod(就是会新建一个 go.mod 文件)go mod tidy: 整理依赖关系,会添加丢失的 modul...

weixin_30476025的博客 173

goland中"cannot find package "core" in any of"问题的解决方法

问题: 解决方法:file-&amp;gt;settings-&amp;gt;Go-&amp;gt;GOPATH-&amp;gt;PROJECT GOPATH中添加当前项目工程的路径

qiubingcsdn的博客 1万+

seelog学习笔记

之前用了beego内置的日志模块 beego框架-logs模块学习笔记 ,起初的时候用的还凑活,不过随着项目中日志量的增大,慢慢的发现beego内置的日志库已经完全不能满足日常需求。最后打算使用 seelog ,但是似乎从2017年以后seelog不再有人维护。以下就简单说一下使用seelog的过程。 一、seelog 1、功能 设置不同日志级别(trace, debug, info, warn...

知识就是生产力 3247

关于GO语言中提示 non-standard import 的解决办法

本人初学GO,基本上属于菜中之菜。今天因为要写个小工具需要用到SQLite,于是从SQLite官网下载了安装包安装上。开始一切顺利,但是在编译的时候提示我:non-standard import "github.com/mattn/go-sqlite3" in standard package "iislog"在网上找了半天也没有找到相关的内容,然后翻[和谐]墙用谷歌搜,找到一篇外国的解答。大概意...

ootw的专栏 7292

logrus包设置自定义日志格式

博文老窝:https://blog.csdn.net/HYZX_9987,欢迎访问。 logrus内置的日志格式只有两种: logrus.TextFormatter:纯文本 logrus.JSONFormatter:JSON 源码中有这个接口: // The Formatter interface is used to implement a custom Formatter. It...

空山新雨后,天气晚来秋 5332

golang日志框架之logrus

本文转载自姜总 golang日志库 golang标准库的日志框架非常简单,仅仅提供了print,panic和fatal三个函数对于更精细的日志级别、日志文件分割以及日志分发等方面并没有提供支持。所以催生了很多第三方的日志库,但是在golang的世界里,没有一个日志库像slf4j那样在Java中具有绝对统治地位。golang中,流行的日志框架包括logrus、zap、zerolog、seelog...

jacklife的博客 8万+
上一篇: 商业公链之区块链技术使用的常见库(一)------Go语言命令行库"gopkg.in/urfave/cli.v1"
下一篇: 商业公链之区块链技术使用的常见库(三)------Go语言键值数据库 ”github.com/syndtr/goleveldb/leveldb”
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值