golang はディレクトリ内のログ ファイルの内容を読み取ります。

PHPz
リリース: 2024-02-05 23:51:07
転載
826 人が閲覧しました

golang はディレクトリ内のログ ファイルの内容を読み取ります。

質問の内容

ディレクトリ内のすべてのログ ファイルを読み取ろうとしていますが、以下のコードではファイル名は読み取れますが、その内容は読み取れません。

コンソール出力

ds-api-doc-.log false
2023/03/21 11:27:11 open /Users/xxx/ds-api-doc.log: no such file or directory 







 files, err := ioutil.ReadDir("./logs/")
            if err != nil {
                log.Fatal(err)
            }
            fmt.Println(totalTicks)
            for _, file := range files {
                fmt.Println(file.Name(), file.IsDir())
                abs, err := filepath.Abs(file.Name())
        
                file, err := os.Open(abs)
                if err != nil {
                    log.Fatal(err)
                }
                defer file.Close()
        
                scanner := bufio.NewScanner(file)
                for scanner.Scan() {
                    fmt.Println(scanner.Text())
                }
        
                if err := scanner.Err(); err != nil {
                    log.Fatal(err)
                }
        
            }
ログイン後にコピー

正解


file.name() ファイルのベース名のみを返します。

filepath.abs () は、指定されたパス (この場合はファイルのベース名) を現在の作業ディレクトリに追加します。したがって、返される abs 値には、ファイル パスの ./logs/ セグメントが欠落します。

この問題を解決するには、次のことを実行できます:

リーリー

または、fn パラメータのファイル パスを提供する filepath.walkdir を使用することもできます。

リーリー

以上がgolang はディレクトリ内のログ ファイルの内容を読み取ります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート