func TestSearch(t *testing.T) { cl, err := NewClient("http://localhost:9000", "test", "") if err != nil { t.Error(err.Error()) } now := time.Now() goTestId := uuid.New() err = addLog(goTestId) if err != nil { t.Error(err.Error()) } srcQuery := new(commonsLog.LogSearchParam) srcQuery.Applications = []string{"test"} srcQuery.DtSince = now.UnixNano() / 1000000 srcQuery.DtTo = (now.UnixNano() / 1000000) + 10000 //+10sec srcQuery.Levels = []string{"DEBUG"} srcQuery.Query = "#goTestId=" + goTestId logs, err := cl.Search(srcQuery) if err != nil { t.Error(err.Error()) } if len(logs) != 1 { t.Errorf("expected 1 logs, founded %d", len(logs)) } }
func searchCommandExec() { if !strings.EqualFold(*searchCmd_Format, "json") && !strings.EqualFold(*searchCmd_Format, "jsonIndented") && !strings.EqualFold(*searchCmd_Format, "plain") { printError("Error: format %s not supported", *searchCmd_Format) os.Exit(1) } cl, err := client.NewClient(*searchCmd_Url, *addCmd_Application, *addCmd_ApplicationToken) if err != nil { printError("Error: %s", err.Error()) os.Exit(1) } srcQuery := new(commons.LogSearchParam) srcQuery.Applications = *searchCmd_Applications dtSince, err := time.Parse("2006-01-02 15:04:05", *searchCmd_Since) if err != nil { printError("Error: %s", err.Error()) os.Exit(1) } srcQuery.DtSince = dtSince.UnixNano() / 1000000 dtTo, err := time.Parse("2006-01-02 15:04:05", *searchCmd_To) if err != nil { printError("Error: %s", err.Error()) os.Exit(1) } srcQuery.DtTo = dtTo.UnixNano() / 1000000 srcQuery.Levels = *searchCmd_Levels srcQuery.Query = *searchCmd_Query srcQuery.MaxResult = *searchCmd_MaxResult srcQuery.Page = *searchCmd_Page srcQuery.SortField = *searchCmd_SortField srcQuery.SortAscending = !(*searchCmd_Reverse) logs, err := cl.Search(srcQuery) if err != nil { printError("Error: %s", err.Error()) os.Exit(1) } var result []byte if strings.EqualFold(*searchCmd_Format, "json") { result, err = json.Marshal(logs) } if strings.EqualFold(*searchCmd_Format, "jsonIndented") { result, err = json.MarshalIndent(logs, "", "\t") } if strings.EqualFold(*searchCmd_Format, "plain") { var plainLogs string for _, log := range logs { plainLogs = plainLogs + "[" + log.Application + "]: " + log.Date.String() + " " + log.Level + " " + log.Message + "\n" if len(log.Stack) > 0 { plainLogs = plainLogs + log.Stack } } result = []byte(plainLogs) } if err != nil { printError("Error: %s", err.Error()) os.Exit(1) } fmt.Printf("%s\n", string(result)) }