Golang 写日志到文件

Go 复制代码
package main

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

func main() {
	printLog("auto", "报警内容AA")
}

func printLog(filename string, content string) {
	t := time.Now().Format(time.DateOnly)
	file := filename + "." + t + ".log"
    //日志名称为 xx.2024-03-07.log

	f, err := os.OpenFile(file, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		log.Panic("打开日志文件异常")
	}
	defer f.Close() // 延迟关闭文件句柄
	log.SetOutput(f)
	log.Print(content)
}

OpenFile常用的打开模式:

os.O_RDONLY: 以只读方式打开文件

os.O_WRONLY: 以只写方式打开文件

os.O_RDWR: 以读写方式打开文件

os.O_APPEND: 在文件末尾追加数据

os.O_CREATE: 如果文件不存在则创建新文件

os.O_EXCL: 与O_CREATE一起使用时,要求文件必须是新创建的,如果文件已经存在则返回错误

os.O_SYNC: 打开文件用于同步I/O

os.O_TRUNC: 如果可能,打开文件时先将文件内容清空

相关推荐
认真敲代码的小火龙12 小时前
【JAVA项目】基于JAVA的图书管理系统
java·开发语言·课程设计
爱敲代码的小冰12 小时前
js 时间的转换
开发语言·前端·javascript
缘三水12 小时前
【C语言】14.指针(4)
c语言·开发语言·指针·语法
汝生淮南吾在北12 小时前
SpringBoot+Vue游戏攻略网站
前端·vue.js·spring boot·后端·游戏·毕业设计·毕设
电子_咸鱼12 小时前
【QT SDK 下载安装步骤详解 + QT Creator 导航栏使用教程】
服务器·开发语言·网络·windows·vscode·qt·visual studio code
AAA阿giao12 小时前
深入理解 JavaScript 中的面向对象编程(OOP):从构造函数到原型继承
开发语言·前端·javascript·原型·继承·原型模式·原型链
2301_7973122612 小时前
学习Java22天
java·开发语言
jllllyuz12 小时前
MATLAB雷达系统设计与仿真
开发语言·matlab
IMPYLH12 小时前
Lua 的 type 函数
开发语言·笔记·后端·junit·lua
ConardLi12 小时前
分析了 100 万亿 Token 后,得出的几个关于 AI 的真相
前端·人工智能·后端