http_log_syslog.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "html/template"
  6. "io"
  7. "net/http"
  8. "path/filepath"
  9. "strconv"
  10. "redisdog/model"
  11. )
  12. type LogSysLogListRetData struct {
  13. Count int64
  14. List []*model.SysLogRow
  15. }
  16. type LogSysLogListRet struct {
  17. Errno int `json:"errno"`
  18. Error string `json:"error"`
  19. Data LogSysLogListRetData `json:"data"`
  20. }
  21. func log_syslog(resp http.ResponseWriter, req *http.Request) {
  22. sess, ok := checkLogin(resp, req)
  23. if !ok {
  24. return
  25. }
  26. //视图输出
  27. files := []string{
  28. filepath.Join(Cfg.TmplDir, "log", "syslog.tmpl"),
  29. filepath.Join(Cfg.TmplDir, "header.tmpl"),
  30. filepath.Join(Cfg.TmplDir, "navbar.tmpl"),
  31. }
  32. tmpl, err := template.New("syslog.tmpl").Funcs(TmplFuncMap).ParseFiles(files...)
  33. if err != nil {
  34. io.WriteString(resp, fmt.Sprintf("Error: %s\n", err.Error()))
  35. } else {
  36. tmpl.Execute(resp, struct {
  37. Sess *Session
  38. Req *http.Request
  39. Title string
  40. }{
  41. sess,
  42. req,
  43. "系统错误日志",
  44. })
  45. }
  46. }
  47. func log_syslog_list(resp http.ResponseWriter, req *http.Request) {
  48. _, ok := checkLogin(resp, req)
  49. if !ok {
  50. return
  51. }
  52. req.ParseForm()
  53. size, page, desc := 50, 1, true
  54. if sizeStr := req.Form.Get("size"); sizeStr != "" {
  55. if size, _ = strconv.Atoi(sizeStr); size <= 1 {
  56. size = 50
  57. }
  58. }
  59. if pageStr := req.Form.Get("page"); pageStr != "" {
  60. if page, _ = strconv.Atoi(pageStr); page < 1 {
  61. page = 1
  62. }
  63. }
  64. if orderStr := req.Form.Get("order"); orderStr != "" {
  65. if orderStr == "ASC" {
  66. desc = false
  67. }
  68. }
  69. mdl := model.NewSysLog(Db)
  70. cnt, err := mdl.Count()
  71. if err != nil {
  72. resp.Write(ERROR_RET(1, fmt.Sprintf("查询失败:%s", err.Error())))
  73. } else {
  74. logs, err := mdl.GetList(int64(size*(page-1)), int64(size), desc)
  75. if err != nil {
  76. resp.Write(ERROR_RET(1, fmt.Sprintf("查询失败:%s", err.Error())))
  77. } else {
  78. ret, _ := json.Marshal(LogSysLogListRet{Errno: 0, Error: "", Data: LogSysLogListRetData{Count: cnt, List: logs}})
  79. resp.Write(ret)
  80. }
  81. }
  82. }