Escribo un código para enviar el registro al servidor rsyslog en ubuntu, el código tiene el siguiente contenido. En el archivo ryslogd.conf he configurado local7.* /var/log/test.log.*Pero cuando se ejecuta, el registro no se escribe en test.log *
package main import ( "errors" "fmt" "log/syslog" "os" "path/filepath" ) func main() { programName := filepath.Base(os.Args[0]) fmt.Println(programName) syslog_pointer, err := syslog.Dial("udp", "localhost:514", syslog.LOG_WARNING|syslog.LOG_LOCAL7, "test") if err != nil { err_exception := errors.New("Can't connect to syslog server localhost:514") fmt.Println(err_exception) os.Exit(1) } else { syslog_pointer.Emerg("This is log test") } }Quiero la línea de registro: este es un registro de prueba que se escribirá en el archivo /var/log/test.log
El registro local suele realizarse a través de un socket Unix. El registro de UDP generalmente debe habilitarse explícitamente para el servidor Syslog.
La creación de syslog.Writer a través syslog.New intentará conectarse primero a través de sockets comunes de Unix, luego intentará UDP a través de localhost:
package main import ( "log" "log/syslog" ) func main() { s, err := syslog.New(syslog.LOG_WARNING|syslog.LOG_LOCAL7, "test") if err != nil { log.Fatal(err) } s.Emerg("log test") }