in spectator/writer/unixgram_writer.go [38:64]
func (u *UnixgramWriter) Write(line string) {
u.logger.Debugf("Sending line: %s", line)
if u.conn != nil {
if _, err := u.conn.Write([]byte(line)); err != nil {
u.logger.Errorf("failed to write to unix socket: %v\n", err)
if strings.Contains(err.Error(), "transport endpoint is not connected") {
u.logger.Infof("close unix socket")
err := u.conn.Close()
if err != nil {
u.logger.Errorf("failed to close unix socket: %v\n", err)
}
u.conn = nil
}
}
} else {
u.logger.Infof("re-dial unix socket")
conn, err := net.DialUnix("unixgram", nil, u.addr)
if err != nil {
u.logger.Errorf("failed to dial unix socket: %v", err)
} else {
u.conn = conn
}
}
}