Go -- log日志库
- 一、标准库log介绍
- 1、使用Logger
- 2、配置logger
- 2.1、标准logger的配置
- 二、自定义日志库
- 1、需要满足的需求
- 2、了解下runtime包
- 3、自定义日志库
一、标准库log介绍
- Go语言内置的log包实现了简单的日志服务。
1、使用Logger
- log包定义了Logger类型,该类型提供了一些格式化输出的方法。
- log包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)、和Panic系列(Panic|Panicf|Panicln)来使用,比自行创建一个logger对象更容易使用。
- logger会打印每条日志信息的日期、时间,默认输出到系统的标准错误。
- Fatal系列函数会在写入日志信息后调用os.Exit(1)。
- Panic系列函数会在写入日志信息后panic。
示例:
// 直接调用print来输出日志到终端
func main() {log.Println("这是一条很普通的日志。")v := "很普通的"log.Printf("这是一条%s日志。\n", v)log.Fatalln("这是一条会触发fatal的日志。")log.Panicln("这是一条会触发panic的日志。")
}
2、配置logger
2.1、标准logger的配置
- 默认情况下的logger只会提供日志的时间信息,但是很多情况下我们希望得到更多信息,比如记录该日志的文件名和行号等。log标准库中为我们提供了定制这些设置的方法。
- log标准库中的Flags函数会返回标准logger的输出配置,而SetFlags函数用来设置标准logger的输出配置。
二、自定义日志库
1、需要满足的需求
- 1、支持网不同地方输出日志
- 2、日志要支持开关控制
- 3、完整的日志要包含时间、行号、文件名、日志级别、日志信息
- 4、日志文件要能切割
- 5、日志级别
- Debug
- Trace
- Info
- Warning
- Error
- Fatal
2、了解下runtime包
- runtime.Caller() 方法,会返回函数调用的信息,在()内传入int类型数据,代表调用的层数(0代表第一层被调用,1代表第二层,一次类推)。runtime.Caller()返回如下四个参数:
- pc: 记录了调用的函数消息,如函数名等
- file: 调用的文件名
- line: 行数
- OK: 返回的bool值
// 获取代码行号
func getinfo(n int) {/*runtime.Caller()返回四个参数:pc: 记录了调用的函数消息,如函数名等file: 调用的文件名line: 行数OK: 返回的bool值*/pc, file, line, ok := runtime.Caller(n)if !ok {fmt.Printf("runtime.Caller() failed\n")return}fmt.Println(pc) // 用于调用函数消息funcName := runtime.FuncForPC(pc).Name() // 利用 runtime.FuncForPC()方法,参数pc序号,可以调出函数名fmt.Println(funcName)fmt.Println(file) // 打印出执行的文件的绝对路径fmt.Println(path.Base(file)) // path.Base()方法可以获取传入的绝对路径的最后一个文件名称fmt.Println(line) // 打印出执行的行号
}func main() {getinfo(0)
}
3、自定义日志库
1、在 E:\GoProject\src\gitee.com 项目目录下,新建 mylogger 包目录,存放日志库代码
- 在mylogger包目录下console.go文件中,放将日志输出到终端的代码
# E:\GoProject\src\gitee.com\mylogger\console.gopackage myloggerimport ("fmt""strings""time"
)// 终端输出的日志内容// Logger 日志结构体
type ConsoleLogger struct {Level LogLevel
}// 构造函数
func NewLog(levelStr string) ConsoleLogger {level, err := parseLogLevel(levelStr)if err != nil {panic(err)}return ConsoleLogger{Level: level,}
}// 定义日志等级比较
func (c ConsoleLogger) enable(level LogLevel) bool {return c.Level <= level
}// 定义一个日志打印方法
func (c ConsoleLogger) outLog(lv LogLevel, format string, a ...interface{}) {level := parseLogLevelStr(lv)if c.enable(lv) {msg := fmt.Sprintf(format, a...) // 支持格式化操作,a...表示对接收的接口进行展开level = strings.ToUpper(level)fileName, funcName, linenu := getinfo(3)fmt.Printf("[%s] [%s] [FileName:%s lineNum:%d:%s] %s\n", time.Now().Format("2006-01-02 15:04:05"), level, fileName, linenu, funcName, msg)}
}// Debug日志
func (c ConsoleLogger) Debug(msg string, a ...interface{}) {c.outLog(DEBUG, msg, a...)
}// Info日志
func (c ConsoleLogger) Info(msg string, a ...interface{}) {c.outLog(INFO, msg, a...)
}// Warning日志
func (c ConsoleLogger) Warning(msg string, a ...interface{}) {c.outLog(WARNING, msg, a...)
}// Error日志
func (c ConsoleLogger) Error(msg string, a ...interface{}) {c.outLog(ERROR, msg, a...)
}// Fatal日志
func (c ConsoleLogger) Fatal(msg string, a ...interface{}) {c.outLog(FATAL, msg, a...)
}
- 在mylogger包目录下logfile.go文件中,放将日志输出到文件的代码
# E:\GoProject\src\gitee.com\mylogger\logfile.gopackage mylogger// 向文件中写日志的相关操作import ("fmt""os""path""strings""time"
)// Logger 日志结构体
type FileLogger struct {Level LogLevellogPath string // 日志文件目录fileName string // 日志文件名称maxFileSize int64 // 日志文件大小fileObj *os.FileerrFileObj *os.File
}// 构造函数
func NewFileLog(levelStr, fp, fn string, maxSize int64) *FileLogger {level, err := parseLogLevel(levelStr)if err != nil {panic(err)}f1 := &FileLogger{Level: level,logPath: fp,fileName: fn,maxFileSize: maxSize,}err = f1.initFile()if err != nil {panic(err)}return f1
}// 定义文件初始化方法,打开文件
func (f *FileLogger) initFile() error {// 打开文件fullPath := path.Join(f.logPath, f.fileName)fileObj, err := os.OpenFile(fullPath, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)if err != nil {fmt.Printf("open logFile failed,Err:%v", err)return err}// 打开错误日志文件errFileObj, err := os.OpenFile("error-"+fullPath, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)if err != nil {fmt.Printf("open errorLogFile failed,Err:%v", err)return err}// 将文件句柄赋值给结构体中的元素f.fileObj = fileObjf.errFileObj = errFileObjreturn nil
}// 关闭文件方法
func (f *FileLogger) closeFile() {f.fileObj.Close()f.errFileObj.Close()
}// 定义日志等级比较
func (f *FileLogger) enable(level LogLevel) bool {return f.Level <= level
}// 定义检查日志大小进行切割的方法
func (f *FileLogger) checkLogSize(file *os.File) bool { // 利用os.Open()方法打开的文件句柄类型都是 *os.File 这种指针类型fileInfo, err := file.Stat()if err != nil {fmt.Printf("get file info failed,err:%v\n", err)return false// panic(err)}if fileInfo.Size() > f.maxFileSize {return true}return false
}func (f *FileLogger) cutFile(file *os.File) (*os.File, error) {// 获取当前文件名fileInfo, err := file.Stat()if err != nil {fmt.Printf("get file info failed,err:%v\n", err)return nil, err}append := "_" + time.Now().Format("2006-01-02-15-04-05") + ".log" // 时间戳后缀fileName := fileInfo.Name()newFileName := fileName + appendoldPath := path.Join(f.logPath, fileName) // 日志文件的全路径newPath := path.Join(f.logPath, newFileName)// 关闭当前文件句柄file.Close()// 进行更名备份os.Rename(oldPath, newPath)// 再打开一个文件fileObj, err := os.OpenFile(oldPath, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)if err != nil {fmt.Printf("open logFile failed,Err:%v\n", err)return nil, err}return fileObj, nil
}// 定义一个日志输出的方法
func (f *FileLogger) outLog(lv LogLevel, format string, a ...interface{}) {level := parseLogLevelStr(lv)if f.enable(lv) {msg := fmt.Sprintf(format, a...) // 支持格式化操作,a...表示对接收的接口进行展开level = strings.ToUpper(level)fileName, funcName, linenu := getinfo(3)// 判断日志是否需要切割if f.checkLogSize(f.fileObj) {fileobj, err := f.cutFile(f.fileObj)if err != nil {fmt.Printf("log cut failed,err:%v\n", err)}f.fileObj = fileobj}// 将日志记录在日志文件中fmt.Fprintf(f.fileObj, "[%s] [%s] [FileName:%s lineNum:%d:%s] %s\n", time.Now().Format("2006-01-02 15:04:05"), level, fileName, linenu, funcName, msg)if lv >= ERROR {// 判断错误日志是否需要切割if f.checkLogSize(f.errFileObj) {fileobj, err := f.cutFile(f.errFileObj)if err != nil {fmt.Printf("log cut failed,err:%v\n", err)}f.errFileObj = fileobj}// 将日志等级大于ERROR的在错误日志中再记录一遍fmt.Fprintf(f.errFileObj, "[%s] [%s] [FileName:%s lineNum:%d:%s] %s\n", time.Now().Format("2006-01-02 15:04:05"), level, fileName, linenu, funcName, msg)}}
}// Debug日志
func (f *FileLogger) Debug(msg string, a ...interface{}) {f.outLog(DEBUG, msg, a...)
}// Info日志
func (f *FileLogger) Info(msg string, a ...interface{}) {f.outLog(INFO, msg, a...)
}// Warning日志
func (f *FileLogger) Warning(msg string, a ...interface{}) {f.outLog(WARNING, msg, a...)
}// Error日志
func (f *FileLogger) Error(msg string, a ...interface{}) {f.outLog(ERROR, msg, a...)
}// Fatal日志
func (f *FileLogger) Fatal(msg string, a ...interface{}) {f.outLog(FATAL, msg, a...)
}
- 在mylogger包目录下创建mylogger.go文件,放包内共用的代码
# E:\GoProject\src\gitee.com\mylogger\mylogger.gopackage myloggerimport ("errors""fmt""path""runtime""strings"
)// 设置日志级别
type LogLevel uint16const (UNKNOWN LogLevel = iotaDEBUGTRACEINFOWARNINGERRORFATAL
)// 解析日志等级,将字符串解析成int
func parseLogLevel(s string) (LogLevel, error) {s = strings.ToLower(s) // 将字符串全部转为小写switch s {case "debug":return DEBUG, nilcase "trace":return TRACE, nilcase "info":return INFO, nilcase "warning":return WARNING, nilcase "error":return ERROR, nilcase "fatal":return FATAL, nildefault:err := errors.New("无效日志等级")return UNKNOWN, err}
}// 将日志等级解析成字符串
func parseLogLevelStr(lv LogLevel) (s string) {s = strings.ToLower(s) // 将字符串全部转为小写switch lv {case DEBUG:return "DEBUG"case TRACE:return "TRACE"case INFO:return "INFO"case WARNING:return "WARNING"case ERROR:return "ERROR"case FATAL:return "FATAL"default:return "DEBUG"}
}// 获取代码行号
func getinfo(n int) (fileName, funcName string, line int) {/*runtime.Caller()返回四个参数:pc: 记录了调用的函数消息,如函数名等file: 调用的文件名line: 行数OK: 返回的bool值*/pc, file, line, ok := runtime.Caller(n)if !ok {fmt.Printf("runtime.Caller() failed\n")return}fileName = path.Base(file)funcName = runtime.FuncForPC(pc).Name()return fileName, funcName, line
}
2、调用日志库代码测试
- 需要注意,导入mylogger包,是从$GOPATH路径开始的(即从src目录开始的相对路径)
# E:\GoProject\src\gitee.com\LTP\loggingpackage mainimport ("time"mylogger "gitee.com/mylogger"
)func main() {id := 10name := "小明"flogger := mylogger.NewFileLog("info", "./", "app.log", 1024)for {flogger.Warning("这是个Warning日志")flogger.Error("这是个Error日志,id:%d name:%s", id, name)time.Sleep(2 * time.Second)}
}
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 汇编语言 王爽 第四版 实验4
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 实验4 [bx]和loop的使用 1 编程,向内存0:200~0:23f依次传送数据0~63(3fh) assume cs:code code segmentmov ax,0mov ds,ax;设置ds0mov bx,200h;设置从200h开始mov cx,64;循环64次mov al,0;传送的数据s: mo…...
2024/4/28 15:47:12 - 10月27号,比较有趣的dfs题目+stack,301. 删除无效的括号, Java Array、List、Set互相转化
删除无效的括号 有趣的困难题,难点在于题目的理解,为了加深记忆,所以用python 和 JAVA写了两遍,其实也可用用记忆化提升速度 中间关于java中的转换有点忘记了,特地记录一下: Java Array、List、Set互相转化…...
2024/5/6 19:15:54 - go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组(1):一维数组
数组是具有相同类型的一组已编号且长度固定的数据序列,这种类型可以是任意基本类型,例如整型、字符串类型或者自定义类型。 数组是一段固定长度的连续内存区域。使用数组时可以修改成员,但是数组大小从声明时就确定,不可变化。 一…...
2024/4/24 15:59:05 - 二级指针在堆中的空间结构
在堆中创建的空间如下: malloc(sizeof (int)*4) //如果是整形的空间应该用什么变量来接收呢? int * pArray malloc(sizeof(int)*4) //用int * 来接收整形的 malloc(sizeof (int *)*5) …...
2024/4/24 15:59:04 - 猜谜三人组
题解:因为我们可以让其变成 0 ~ a 的c***个数suma,和0 ~ b-1的c****个数sum,答案等于sumb-suma。 sum可以通过 1.得出位数xs 2.而后先将到该位数的c***个数取满 3.进行判断x是否在c*和(c1)***-1之间,然…...
2024/4/24 15:59:03 - 1032 挖掘机技术哪家强 (20 分)
1032 挖掘机技术哪家强 (20 分) 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。 输入格式: 输入在第 1 行给出不超过 105 的正整数 N,即参赛人数。随后 N 行࿰…...
2024/4/24 15:59:02 - 单链表的基本操作
SList.h头文件: #pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h> typedef int SLTDateType; typedef struct SListNode {SLTDateType data;struct SListNode * next; }SLTNode; void SListPrint(SLTNode *phead); void S…...
2024/5/6 22:57:54 - 转发和重定向的区别:
转发和重定向的区别: (1)转发是一次请求,第一次浏览器发送,第二次发生在服务器内部(不算请求)。重定向是浏览器发送两次请求,第一次访问Servler,第二次访问重定向到的地…...
2024/4/24 15:49:58 - Linux SSHD服务安装与维护详解(一)——SSHD安装、启动与密钥认证实现
今天开始给大家介绍Linux 服务运维,本文主要内容是SSHD服务的安装与维护。 一、SSHD服务简介与安装 SSH协议是运维工程师和网络工程师常用的远程管理协议,是一种建立在传输层之上的应用层协议,基于TCP协议,服务端口号为22。SSHD…...
2024/4/24 15:49:53 - Centos7 docker完美卸载
1.查询docker安装包 yum list installed | grep docker 2.删除安装包 yum remove docker* 3.删除镜像/容器等 rm -rf /var/lib/docke...
2024/4/24 15:49:55 - node基础---补充内容
Unicode任何字符都是2个字节;UTF-8汉字3个字节,英文1个字节,特殊西文2个字节 计算机一个0或一个1我们称为1位(bit) 8bit 1byte (美书) 1024byte 1kb 1024kb 1mb 1024mb 1gb 1024gb 1tb var str "hello 大世界"; var buf B…...
2024/4/24 15:49:55 - 面试题10:斐波那契数列
题目一:求斐波那契数列的第n项。 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。 斐波那契数列的定义如下: # 面试题10 菲波那切数列如果采用递归的话,数字过大会导致栈溢出。 有一个办法就是讲计算的结果保存下来,不需要重复计算&am…...
2024/4/24 15:49:54 - C语言基础——五分钟打开递归大门
目录传统艺能😎过渡区🤣正片开始👀概念👏题外话👏语法格式👏具体使用情景👏传统艺能😎 小编是大一菜鸟不赘述,欢迎大佬指点江山(QQ:1319365055&a…...
2024/4/24 15:49:54 - 2021-2022-1 20212806《Linux内核原理与分析》第六周作业
文章目录一、给MenuOS增加命令二、使用gdb跟踪系统调用内核函数sys_time三、系统调用的内核处理过程四、总结一、给MenuOS增加命令 rm -rf menu //强制删除当前menu目录 git clone https://github.com/mengning/menu.git //重新克隆一个新版本的menu cd menu //切换目录 make …...
2024/4/24 15:49:48 - 动态规划-(基本知识总结)
总结:思维导图如下: 以题为启: 数字三角形问题:给定一个有n行数字组成的数字三角形,如上图所示。尝试设计一个算法,计算出从三角形的顶至底的一条路径,使得该路径经过的数字总和最大。 输入&…...
2024/4/24 15:59:01 - Java线程面试题
为什么要使用并发编程 **提升多核CPU的利用率:**一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论 上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了 CPU的使用效率…...
2024/4/24 15:59:03 - 多边形拟合连接边缘算法
学习多边形拟合连接边缘算法 遇到的问题 得到许多目标像素点,需要拟合连接起来该方法需要知道目标区域的所有像素点,并且是一个已排序序列 解决思路使用多边形近似连接边缘算法 a. 需要得到需要近似连接的已排序边缘序列P,找到边缘的起始点…...
2024/4/24 15:59:00 - 第二次课笔记
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> //int b 100;//全局变量 // //int main() //{ // int a 10;//局部变量 // { // int b 10;//局部变量 // } // return 0; //} // // //int c 1000;//全局变量 //int main() //{ // //2个…...
2024/4/24 15:59:01 - 选择排序法
数组int[] a{9,7,8,2,5,1,3,6,4};我们将通过选择排序的方式将数组完成升序。 第一轮:假设a[0]为最小值,即9为最小值,依次往后比较,9和7比,9大于7,则最小值变为7,记住元素7的下标,然后拿7和8比较…...
2024/4/24 15:58:57 - 第2周编程题
1 时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。…...
2024/4/24 15:59:03
最新文章
- 强化学习玩flappy_bird
强化学习玩flappy_bird(代码解析) 游戏地址:https://flappybird.io/ 该游戏的规则是: 点击屏幕则小鸟立即获得向上速度。 不点击屏幕则小鸟受重力加速度影响逐渐掉落。 小鸟碰到地面会死亡,碰到水管会死亡。&#…...
2024/5/7 2:15:34 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/6 9:38:23 - 鹅厂实习offer
#转眼已经银四了,你收到offer了吗# 本来都打算四月再投实习了,突然三月初被wxg捞了(一年前找日常实习投的简历就更新了下),直接冲了,流程持续二十多天,结果是运气还不错,应该是部门比…...
2024/5/1 13:19:09 - 自动化标准Makefile与lds
makefile的自动化,需要使用变量,以及自动变量。 实行命令行与参数的分离。 命令行只与变量打交道,而变量则携带不同的参数,这样,通过修改变量,命令的执行结果不同。 可以简单理解为,命令行是个…...
2024/5/5 0:49:43 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/4 23:54:56 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/4 23:54:56 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/6 9:21:00 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/4 23:55:16 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/4 23:55:06 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57