go语言log包的学习(log,Logger)

package main;

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

func main() {
	//创建输出日志文件
	logFile, err := os.Create("./" + time.Now().Format("20060102") + ".txt");
	if err != nil {
		fmt.Println(err);
	}

	//创建一个Logger
	//参数1:日志写入目的地
	//参数2:每条日志的前缀
	//参数3:日志属性
	loger := log.New(logFile, "test_", log.Ldate|log.Ltime|log.Lshortfile);

	//Flags返回Logger的输出选项
	fmt.Println(loger.Flags());

	//SetFlags设置输出选项
	loger.SetFlags(log.Ldate | log.Ltime | log.Lshortfile);

	//返回输出前缀
	fmt.Println(loger.Prefix());

	//设置输出前缀
	loger.SetPrefix("test_");

	//输出一条日志
	loger.Output(2, "打印一条日志信息");

	//格式化输出日志
	loger.Printf("第%d行 内容:%s", 11, "我是错误");

	//等价于print();os.Exit(1);
	loger.Fatal("我是错误");

	//等价于print();panic();
	loger.Panic("我是错误");

	//log的导出函数
	//导出函数基于std,std是标准错误输出
	//var std = New(os.Stderr, "", LstdFlags)

	//获取输出项
	fmt.Println(log.Flags());
	//获取前缀
	fmt.Printf(log.Prefix());
	//输出内容
	log.Output(2, "输出内容");
	//格式化输出
	log.Printf("第%d行 内容:%s", 22, "我是错误");
	log.Fatal("我是错误");
	log.Panic("我是错误");
}

  

时间: 2024-10-11 21:40:08

go语言log包的学习(log,Logger)的相关文章

R语言caret包的学习(一)--数据预处理

caret包(Classification and Regression Training)是一系列函数的集合,它试图对创建预测模型的过程进行流程化.本系列将就数据预处理.特征选择.抽样.模型调参等进行介绍学习. 本文将就caret包中的数据预处理部分进行介绍学习.主要包括以下函数:model.matrix(),dummyVars(),nearZeroVar(),findCorrelation(),findLinearCombos(),preProcess(),classDist() 创建虚拟变

R语言caret包的学习(二)--特征选择

在进行数据挖掘时,我们并不需要将所有的自变量用来建模,而是从中选择若干最重要的变量,这称为特征选择(feature selection).本文主要介绍基于caret包的rfe()函数的特征选择. 一种算法就是后向选择,即先将所有的变量都包括在模型中,然后计算其效能(如误差.预测精度)和变量重要排序,然后保留最重要的若干变量,再次计算效能,这样反复迭代,找出合适的自变量数目.这种算法的一个缺点在于可能会存在过度拟合,所以需要在此算法外再套上一个样本划分的循环.在caret包中的rfe命令可以完成这

go语言sync包的学习(Mutex、WaitGroup、Cond)

package main; import ( "fmt" "sync" "runtime" "time" ) //加锁,注意锁要以指针的形式传进来,不然只是拷贝 func total1(num *int, mu *sync.Mutex, ch chan bool) { mu.Lock(); for i := 0; i < 1000; i++ { *num += i; } ch <- true; mu.Unlock(

go语言time包的学习(Time,Location,Duration,Timer,Ticker)

package main; import ( "time" "fmt" ) func main() { //time.Time代表一个纳秒精度的时间点 var t time.Time; //返回当前时间 t = time.Now(); fmt.Printf("%v\n", t); //反回所在时区 fmt.Printf("%v\n", t.Location()); //返回UTC时间和UTC时区 fmt.Printf(&quo

go标准库-log包源码学习

log包是go语言提供的一个简单的日志记录功能,其中定义了一个结构体类型 Logger,是整个包的基础部分,包中的其他方法都是围绕这整个结构体创建的. Logger结构 Logger结构的定义如下: type Logger struct { mu sync.Mutex prefix string flag int out io.Writer buf []byte } mu 是sync.Mutex,它是一个同步互斥锁,用于保证日志记录的原子性. prefix 是输入的日志每一行的前缀 flag 是

Golang学习笔记--log包

个人站:http://www.cloudnoter.com/?p=137 一.快速使用 Golang的log包短小精悍,可以非常轻松的实现日志打印转存功能.不用多说,log支持并发操作(即协程安全-相对于JAVA中的线程安全而言),其结构定义如下: type Logger struct { mu sync.Mutex // ensures atomic writes; protects the following fields prefix string // prefix to write a

Go语言中日志处理,log包的使用

Golang提供了原生日志库"log",使用简单方便,本文以代码为例进行说明介绍. package main import ( "os" "log" "fmt" ) func main() { // 打开日志文件 // 第二个参数为打开文件的模式,可选如下: /* O_RDONLY // 只读模式打开文件 O_WRONLY // 只写模式打开文件 O_RDWR // 读写模式打开文件 O_APPEND // 写操作时将数据附加

Golang官方log包详解

Golang官方log包详解 以下全是代码, 详解在注释中, 请从头到尾看 // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package log implements a simple logging package. I

【原创】Kakfa log包源代码分析(一)

Kafka日志包是提供的是日志管理系统.主要的类是LogManager——该类负责处理所有的日志,并根据topic/partition分发日志.它还负责flush策略以及日志保存策略.Kafka日志本身是由多个日志段组成(log segment).一个日志是一个FileMessageSet,它包含了日志数据以及OffsetIndex对象,该对象使用位移来读取日志数据. 下面我们一个一个地分析,先说最简单的: 一.LogConfig.scala 该scala定义了Defaults object,里