2023-01-27 13:37:20 -08:00
|
|
|
// Copyright (c) Tailscale Inc & AUTHORS
|
|
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
2020-02-05 14:16:58 -08:00
|
|
|
|
|
|
|
// The logtail program logs stdin.
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bufio"
|
|
|
|
"flag"
|
|
|
|
"io"
|
|
|
|
"log"
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"tailscale.com/logtail"
|
2023-02-28 19:00:00 -08:00
|
|
|
"tailscale.com/types/logid"
|
2020-02-05 14:16:58 -08:00
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
collection := flag.String("c", "", "logtail collection name")
|
|
|
|
privateID := flag.String("k", "", "machine private identifier, 32-bytes in hex")
|
|
|
|
flag.Parse()
|
|
|
|
if len(flag.Args()) != 0 {
|
|
|
|
flag.Usage()
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
log.SetFlags(0)
|
|
|
|
|
2023-02-28 19:00:00 -08:00
|
|
|
var id logid.PrivateID
|
2020-02-05 14:16:58 -08:00
|
|
|
if err := id.UnmarshalText([]byte(*privateID)); err != nil {
|
|
|
|
log.Fatalf("logtail: bad -privateid: %v", err)
|
|
|
|
}
|
|
|
|
|
2020-12-21 09:03:39 -08:00
|
|
|
logger := logtail.NewLogger(logtail.Config{
|
2020-02-05 14:16:58 -08:00
|
|
|
Collection: *collection,
|
|
|
|
PrivateID: id,
|
2020-05-13 23:44:58 -04:00
|
|
|
}, log.Printf)
|
2020-02-05 14:16:58 -08:00
|
|
|
log.SetOutput(io.MultiWriter(logger, os.Stdout))
|
|
|
|
defer logger.Flush()
|
|
|
|
defer log.Printf("logtail exited")
|
|
|
|
|
|
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
|
|
for scanner.Scan() {
|
|
|
|
log.Println(scanner.Text())
|
|
|
|
}
|
|
|
|
}
|