Example #1
0
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))
	}
}
Example #2
0
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))
}