mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 07:00:12 +01:00
🎨 支持导出系统日志文件 https://github.com/siyuan-note/siyuan/issues/5726
This commit is contained in:
parent
4fb74f1186
commit
2a5212e15d
3 changed files with 55 additions and 0 deletions
|
|
@ -49,6 +49,7 @@ func ServeAPI(ginServer *gin.Engine) {
|
||||||
ginServer.Handle("POST", "/api/system/setUILayout", model.CheckAuth, setUILayout)
|
ginServer.Handle("POST", "/api/system/setUILayout", model.CheckAuth, setUILayout)
|
||||||
ginServer.Handle("POST", "/api/system/getConf", model.CheckAuth, getConf)
|
ginServer.Handle("POST", "/api/system/getConf", model.CheckAuth, getConf)
|
||||||
ginServer.Handle("POST", "/api/system/checkUpdate", model.CheckAuth, checkUpdate)
|
ginServer.Handle("POST", "/api/system/checkUpdate", model.CheckAuth, checkUpdate)
|
||||||
|
ginServer.Handle("POST", "/api/system/exportLog", model.CheckAuth, exportLog)
|
||||||
|
|
||||||
ginServer.Handle("POST", "/api/account/login", model.CheckAuth, login)
|
ginServer.Handle("POST", "/api/account/login", model.CheckAuth, login)
|
||||||
ginServer.Handle("POST", "/api/account/checkActivationcode", model.CheckAuth, checkActivationcode)
|
ginServer.Handle("POST", "/api/account/checkActivationcode", model.CheckAuth, checkActivationcode)
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,16 @@ func checkUpdate(c *gin.Context) {
|
||||||
model.CheckUpdate(showMsg)
|
model.CheckUpdate(showMsg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func exportLog(c *gin.Context) {
|
||||||
|
ret := gulu.Ret.NewResult()
|
||||||
|
defer c.JSON(http.StatusOK, ret)
|
||||||
|
|
||||||
|
zipPath := model.ExportSystemLog()
|
||||||
|
ret.Data = map[string]interface{}{
|
||||||
|
"zip": zipPath,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var start = true // 是否是启动
|
var start = true // 是否是启动
|
||||||
func getConf(c *gin.Context) {
|
func getConf(c *gin.Context) {
|
||||||
ret := gulu.Ret.NewResult()
|
ret := gulu.Ret.NewResult()
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,50 @@ import (
|
||||||
"github.com/siyuan-note/siyuan/kernel/util"
|
"github.com/siyuan-note/siyuan/kernel/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func ExportSystemLog() (zipPath string) {
|
||||||
|
exportFolder := filepath.Join(util.TempDir, "export", "system-log")
|
||||||
|
os.RemoveAll(exportFolder)
|
||||||
|
if err := os.MkdirAll(exportFolder, 0755); nil != err {
|
||||||
|
logging.LogErrorf("create export temp folder failed: %s", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
appLog := filepath.Join(util.HomeDir, ".config", "siyuan", "app.log")
|
||||||
|
if gulu.File.IsExist(appLog) {
|
||||||
|
to := filepath.Join(exportFolder, "app.log")
|
||||||
|
if err := gulu.File.CopyFile(appLog, to); nil != err {
|
||||||
|
logging.LogErrorf("copy app log from [%s] to [%s] failed: %s", err, appLog, to)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
kernelLog := filepath.Join(util.TempDir, "siyuan.log")
|
||||||
|
if gulu.File.IsExist(kernelLog) {
|
||||||
|
to := filepath.Join(exportFolder, "siyuan.log")
|
||||||
|
if err := gulu.File.CopyFile(kernelLog, to); nil != err {
|
||||||
|
logging.LogErrorf("copy kernel log from [%s] to [%s] failed: %s", err, kernelLog, to)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
zipPath = exportFolder + ".zip"
|
||||||
|
zip, err := gulu.Zip.Create(zipPath)
|
||||||
|
if nil != err {
|
||||||
|
logging.LogErrorf("create export log zip [%s] failed: %s", exportFolder, err)
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = zip.AddDirectory("log", exportFolder); nil != err {
|
||||||
|
logging.LogErrorf("create export log zip [%s] failed: %s", exportFolder, err)
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = zip.Close(); nil != err {
|
||||||
|
logging.LogErrorf("close export log zip failed: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
os.RemoveAll(exportFolder)
|
||||||
|
zipPath = "/export/" + url.PathEscape(filepath.Base(zipPath))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func ExportNotebookSY(id string) (zipPath string) {
|
func ExportNotebookSY(id string) (zipPath string) {
|
||||||
zipPath = exportBoxSYZip(id)
|
zipPath = exportBoxSYZip(id)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue