我运行一个服务器,将日志内容重定向到一个文件中,称为“current.log”,用于调试目的,这是我无法显示给用户的。但是我得到了一个场景,我需要向用户展示特定日志集,以便他们可以跟进后端进程。所以我试图为每个用户(每个用户一个日志文件)写另一组日志(在一个自定义文件中),我需要向用户显示不包含任何安全数据的日志。要解决这个将日志内容写入golang中的自定义文件
0
A
回答
2
一种方法是使用记录机制在那里你可以为您记录器对象(具有特定文件位置),然后使用objec吨写日志。因此,使用特定对象编写的日志将被重定向到该特定文件。
,我使用的记录程序包是 “github.com/sadlil/gologger”
示例代码:
package main
import (
"github.com/sadlil/gologger"
)
func main() {
logger := gologger.GetLogger(gologger.FILE, "/home/user/path/user.log")
logger.Log("Test file log")
}
注意:文件将自动创建在对象创建时间
,这样您就可以动态地为每个用户创建一个记录器对象(每个用户都获得不同的日志文件),并且日志将被重定向到该文件。 测井格式将是
[LOG] [2016年4月7日11时31分28秒] [主:: test.go ::主] [8]测试文件日志
2
您可以使用lumberjack.v2,通过它您可以为每个用户定义一个自定义日志文件。
在下面的代码片段中,我使用一个简单的布尔值来确定日志内容是否应该添加到日志文件中,或者不是为每个用户添加。
package main
import (
"gopkg.in/natefinch/lumberjack.v2"
"io/ioutil"
"log"
"strconv"
)
type user struct {
id int
logger *log.Logger
}
func createUser(id int, logWanted bool) user {
var l *log.Logger
if logWanted {
// Here the log content will be added in the user log file
userFIle := &lumberjack.Logger{
Filename: "user_log_" + strconv.Itoa(id) + ".log",
MaxSize: 250, // mb
MaxBackups: 5,
MaxAge: 10, // in days
}
l = log.New(userFIle, "User: ", log.Ldate|log.Ltime|log.Lshortfile)
} else {
// Here the log content will go nowhere
l = log.New(ioutil.Discard, "User: ", log.Ldate|log.Ltime|log.Lshortfile)
}
return user{id, l}
}
func doSomething(u user) {
u.logger.Printf("Log content: user id %v \n", u.id)
}
func main() {
user1 := createUser(1, true)
user2 := createUser(2, false)
user3 := createUser(3, true)
doSomething(user1)
doSomething(user2)
doSomething(user3)
}
这将创建一组新的滚动日志文件与记录每个用户在打开。
- “user_log_1.log” 为USER1
- “user_log_3.log” 为用户3
- 并为用户2
相关问题
- 1. Django自定义文件存储 - 将内容写入文件
- 2. 如何将日志写入golang中的.log文件?
- 3. WIX写自定义日志文件
- 4. 将节点调试日志的内容写入文件
- 5. 将日志写入文件
- 6. 的Bash shell脚本 - 写入自定义日志文件
- 7. Python mod_wsgi写入自定义日志文件,而不是Apache error_log
- 8. 将事件日志写入文件,powershell
- 9. 自定义构建任务:如何将输出写入构建日志文件
- 10. 在自定义日志中重写URL
- 11. 在自定义网络日志中内嵌Flash内容?
- 12. 将日志消息写入日志文件中openscript
- 13. heroku上的自定义日志文件
- 14. 如何将自定义消息写入MSI日志?
- 15. 将自定义视图的内容写入SD卡上的大图像文件
- 16. log4j不将日志写入文件
- 17. 如何将ApScheduler日志写入文件?
- 18. Python - 将日志写入文件
- 19. Android将日志写入文件
- 20. 写入日志文件
- 21. powershell写入日志文件
- 22. C#写入日志文件
- 23. 如何写入自定义Windows事件日志?
- 24. 解析自定义日志文件
- 25. 使用stdout自定义日志文件
- 26. BURN:自定义日志文件位置
- 27. 自定义日志文件创建 - Powershell
- 28. 自定义TFS生成日志文件
- 29. Padrino自定义日志文件
- 30. 我该如何写一个自定义函数来将错误写入我的日志文件中?