Вывод в терминал Goland сносит строчки

Собственно есть код.

package main

import (
    "flag"
    "github.com/gocolly/colly"
    "log"
    "os"
)

var (
    url             string
    infoLog, errLog *log.Logger
)

func initLogger() {
    infoLog = log.New(os.Stdout, "INFO\t", log.Ldate|log.Ltime)
    errLog = log.New(os.Stderr, "ERROR\t", log.Ldate|log.Ltime|log.Llongfile)
}

func initFlag() {
    flag.StringVar(&url, "url", "", "URL to parse")
    flag.Parse()

    if url == "" {
        errLog.Fatal("URL is empty")
    }
}

func main() {
    initLogger()
    initFlag()

    c := colly.NewCollector()

    c.OnRequest(func(r *colly.Request) {
        infoLog.Printf("Visiting %v", r.URL)
    })

    c.OnError(func(_ *colly.Response, err error) {
        errLog.Printf("Something went wrong %v", err)
    })

    err := c.Request("GET", url, nil, nil, nil)
    if err != nil {
        return
    }

}

При компиляции и запуске в Goland почему-то строки вот так сносятся введите сюда описание изображения

Когда же в терминале все выводится нормально введите сюда описание изображения

Собственно, проблема во мне или это как-то Goland режет вывод? Как починить? Покопался в настройках конфигурации - ничего не нашел.


Ответы (1 шт):

Автор решения: Алексей

Это скорее проблема goland. При запуске программы, goland открывает cmd и в ней запускает программу, а cmd открывается при дефолтном размере. Программа быстро срабатывает и cmd закрывается, не успев подстроиться под размеры вкладки в goland. Если добавить time.Sleep() в программу то окно cmd успеет подстроится и вывод будет нормальный.

fmt.Println(MultString("a", 300))

Вывод

fmt.Println(MultString("a", 300))
time.Sleep(time.Second)

Вывод с time.Sleep()

→ Ссылка