mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-28 17:50:56 +01:00
迁移日志到MongoDB
This commit is contained in:
@@ -1,12 +1,23 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"crawlab/database"
|
||||
"crawlab/utils"
|
||||
"github.com/apex/log"
|
||||
"github.com/globalsign/mgo/bson"
|
||||
"os"
|
||||
"runtime/debug"
|
||||
"time"
|
||||
)
|
||||
|
||||
type LogItem struct {
|
||||
Id bson.ObjectId `json:"_id" bson:"_id"`
|
||||
Message string `json:"msg" bson:"msg"`
|
||||
TaskId string `json:"task_id" bson:"task_id"`
|
||||
IsError bool `json:"is_error" bson:"is_error"`
|
||||
Ts time.Time `json:"ts" bson:"ts"`
|
||||
}
|
||||
|
||||
// 获取本地日志
|
||||
func GetLocalLog(logPath string) (fileBytes []byte, err error) {
|
||||
|
||||
@@ -42,3 +53,27 @@ func GetLocalLog(logPath string) (fileBytes []byte, err error) {
|
||||
logBuf = logBuf[:n]
|
||||
return logBuf, nil
|
||||
}
|
||||
|
||||
func AddLogItem(l LogItem) error {
|
||||
s, c := database.GetCol("logs")
|
||||
defer s.Close()
|
||||
if err := c.Insert(l); err != nil {
|
||||
log.Errorf("insert log error: " + err.Error())
|
||||
debug.PrintStack()
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetLogItemList(filter interface{}, skip int, limit int, sortStr string) ([]LogItem, error) {
|
||||
s, c := database.GetCol("logs")
|
||||
defer s.Close()
|
||||
|
||||
var logItems []LogItem
|
||||
if err := c.Find(filter).Skip(skip).Limit(limit).Sort(sortStr).All(&logItems); err != nil {
|
||||
debug.PrintStack()
|
||||
return logItems, err
|
||||
}
|
||||
|
||||
return logItems, nil
|
||||
}
|
||||
|
||||
@@ -109,6 +109,19 @@ func (t *Task) GetResults(pageNum int, pageSize int) (results []interface{}, tot
|
||||
return
|
||||
}
|
||||
|
||||
func (t *Task) GetLogItems() (logItems []LogItem, err error) {
|
||||
query := bson.M{
|
||||
"task_id": t.Id,
|
||||
}
|
||||
|
||||
logItems, err = GetLogItemList(query, 0, constants.Infinite, "+_id")
|
||||
if err != nil {
|
||||
return logItems, err
|
||||
}
|
||||
|
||||
return logItems, nil
|
||||
}
|
||||
|
||||
func GetTaskList(filter interface{}, skip int, limit int, sortKey string) ([]Task, error) {
|
||||
s, c := database.GetCol("tasks")
|
||||
defer s.Close()
|
||||
|
||||
Reference in New Issue
Block a user