Merge pull request #63 from pterodactyl/fix/diagnostics-logs

add log output to diagnostics cmd
This commit is contained in:
Dane Everitt 2020-10-01 19:41:10 -07:00 committed by GitHub
commit 1fc15e82f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,6 +11,7 @@ import (
"net/url"
"os/exec"
"path"
"strconv"
"strings"
"github.com/AlecAivazis/survey/v2"
@ -25,6 +26,7 @@ import (
)
const DefaultHastebinUrl = "https://hastebin.com"
const DefaultLogLines = 50
var (
diagnosticsArgs struct {
@ -32,6 +34,7 @@ var (
IncludeLogs bool
ReviewBeforeUpload bool
HastebinURL string
LogLines int
}
)
@ -43,6 +46,7 @@ var diagnosticsCmd = &cobra.Command{
func init() {
diagnosticsCmd.PersistentFlags().StringVar(&diagnosticsArgs.HastebinURL, "hastebin-url", DefaultHastebinUrl, "The url of the hastebin instance to use.")
diagnosticsCmd.PersistentFlags().IntVar(&diagnosticsArgs.LogLines, "log-lines", DefaultLogLines, "The number of log lines to include in the report")
}
// diagnosticsCmdRun collects diagnostics about wings, it's configuration and the node.
@ -96,7 +100,8 @@ func diagnosticsCmdRun(cmd *cobra.Command, args []string) {
}
printHeader(output, "Wings Configuration")
if cfg, err := config.ReadConfiguration(config.DefaultLocation); cfg != nil {
cfg, err := config.ReadConfiguration(config.DefaultLocation)
if cfg != nil {
fmt.Fprintln(output, "Panel Location:", redact(cfg.PanelLocation))
fmt.Fprintln(output, "Api Host:", redact(cfg.Api.Host))
fmt.Fprintln(output, "Api Port:", cfg.Api.Port)
@ -149,7 +154,15 @@ func diagnosticsCmdRun(cmd *cobra.Command, args []string) {
printHeader(output, "Latest Wings Logs")
if diagnosticsArgs.IncludeLogs {
fmt.Fprintln(output, "No logs found. Probably because nobody implemented logging to files yet :(")
p := "/var/log/pterodactyl/wings.log"
if cfg != nil {
p = path.Join(cfg.System.LogDirectory, "wings.log")
}
if c, err := exec.Command("tail", "-n", strconv.Itoa(diagnosticsArgs.LogLines), p).Output(); err != nil {
fmt.Fprintln(output, "No logs found or an error occurred.")
} else {
fmt.Fprintf(output, "%s\n", string(c))
}
} else {
fmt.Fprintln(output, "Logs redacted.")
}