实现一个 returns 指针的函数

Implement a function which returns a pointer

我已经在我的 golang 应用程序中实现了 syslog 守护进程服务。我在主包中使用了 syslog.New,它可以工作,但现在,我想将它导出到另一个包。

package config

import (
    "log/syslog"
)

func LogBook() ? {
    sysLog, _ := syslog.New(syslog.LOG_LOCAL0|syslog.LOG_ERROR, "myapp") // syslog.New returns (*Writer, error)
    return ?
}

如何实现这个功能? 之后,如何在其他包中使用这个变量'sysLog'?

谢谢!

正如@Volker 所说,答案非常简单,

func LogBook() *syslog.Writer {
    sysLog, _ := syslog.New(syslog.LOG_LOCAL0|syslog.LOG_ERROR, "myapp")
    return sysLog
}

用法示例:

func main(){
    w := LogBook()
    w.Info("message")
}

请注意:

  • 此包未在 Windows 上实现。由于系统日志包被冻结,Windows 鼓励用户使用标准库之外的包。有关背景,请参阅 https://golang.org/issue/1108
  • 计划 9 未实施此包。
  • 此包未在 NaCl(本机客户端)上实现。