@@ -4,14 +4,15 @@ import (
44 "bufio"
55 "context"
66 "fmt"
7- "github.com/kardianos/service"
8- "github.com/sirupsen/logrus"
9- "github.com/urfave/cli/v3"
107 "io"
8+ "log/slog"
119 "os"
1210 "os/exec"
1311 "path/filepath"
1412 "strings"
13+
14+ "github.com/kardianos/service"
15+ "github.com/urfave/cli/v3"
1516)
1617
1718var DefaultStopCallback = func () error { return nil }
@@ -49,7 +50,7 @@ func (x *XCli) createSystemService(ctx context.Context, cmd *cli.Command) (servi
4950 }
5051 // 默认install service时,WorkingDirectory就是其二进制程序所在的目录。这样便于加载配置文件。
5152 workingDir := strings .Replace (dir , "\\ " , "/" , - 1 )
52- logrus . Debugf ("workingDir: %s " , workingDir )
53+ slog . Debug ("workingDir" , "dir " , workingDir )
5354
5455 svcConfig := & service.Config {
5556 Name : conf .ServiceName ,
@@ -230,7 +231,7 @@ func (x *XCli) Start(flags []cli.Flag, commands []*cli.Command) {
230231
231232 err = systemService .Run ()
232233 if err != nil {
233- logrus . Errorf ("service Run failed, err: %v " , err )
234+ slog . Error ("service Run failed" , "error " , err )
234235 return err
235236 }
236237 return nil
@@ -239,7 +240,7 @@ func (x *XCli) Start(flags []cli.Flag, commands []*cli.Command) {
239240 }
240241
241242 if err := app .Run (context .Background (), os .Args ); err != nil {
242- logrus . Errorf ( "Error: %+v " , err )
243+ slog . Error ( "app run error" , "error " , err )
243244 os .Exit (1 )
244245 }
245246}
@@ -252,7 +253,7 @@ func (x *XCli) controlAction(ctx context.Context, cmd *cli.Command) error {
252253 }
253254 err = service .Control (systemService , cmd .Name )
254255 if err != nil {
255- logrus . Errorf ("service %s failed, err: %v" , cmd .Name , err )
256+ slog . Error ("service control failed" , "command" , cmd .Name , "error" , err )
256257 return err
257258 }
258259 return nil
@@ -264,11 +265,11 @@ func runCommand(cmd *exec.Cmd, outputType string) error {
264265 if outputType == "StdoutPipe" {
265266 pipe , err := cmd .StdoutPipe ()
266267 if err != nil {
267- logrus . Errorf ( "cmd. StdoutPipe() failed with %s " , err )
268+ slog . Error ( " StdoutPipe failed" , "error " , err )
268269 return err
269270 }
270271 if err = cmd .Start (); err != nil {
271- logrus . Errorf ("cmd.Start() failed with %s " , err )
272+ slog . Error ("cmd start failed" , "error " , err )
272273 return err
273274 }
274275 go func (p io.ReadCloser ) {
@@ -280,7 +281,7 @@ func runCommand(cmd *exec.Cmd, outputType string) error {
280281 }
281282 }(pipe )
282283 if err = cmd .Wait (); err != nil {
283- logrus . Errorf ("cmd.Wait() failed with %s " , err )
284+ slog . Error ("cmd wait failed" , "error " , err )
284285 return err
285286 }
286287 } else if outputType == "Stdout" {
@@ -293,7 +294,7 @@ func runCommand(cmd *exec.Cmd, outputType string) error {
293294 //}
294295 out , err := cmd .Output ()
295296 if err != nil {
296- logrus . Errorf ("cmd.Output() failed with %s " , err )
297+ slog . Error ("cmd output failed" , "error " , err )
297298 return err
298299 }
299300 fmt .Println (string (out ))
@@ -308,19 +309,19 @@ func runCommand(cmd *exec.Cmd, outputType string) error {
308309 // more是一个简单的分页器,只能向下滚动,无法向上滚动,而less是more的改进版本,可以向上和向下滚动,支持更多功能。
309310 stdout , err := cmd .StdoutPipe ()
310311 if err != nil {
311- logrus . Errorf ( "cmd. StdoutPipe() failed with %s " , err )
312+ slog . Error ( " StdoutPipe failed" , "error " , err )
312313 return err
313314 }
314315 if err = cmd .Start (); err != nil {
315- logrus . Errorf ("cmd.Start() failed with %s " , err )
316+ slog . Error ("cmd start failed" , "error " , err )
316317 return err
317318 }
318319
319320 moreCmd := exec .Command ("less" )
320321 moreCmd .Stdin = stdout
321322 moreCmd .Stdout = os .Stdout
322323 if err = moreCmd .Run (); err != nil {
323- logrus . Errorf ( "moreCmd.Run() failed with %s " , err )
324+ slog . Error ( "less run failed" , "error " , err )
324325 return err
325326 }
326327 }
0 commit comments