我是Go的新手并试图找到解决以下问题的方法。
如何解决这个问题,以便日志"我是包A"被写入文件?
答案 0 :(得分:3)
将日志记录初始化移至log
和main
导入的A
程序包,并且不直接或间接依赖于您要记录到的应用程序部分初始化期间的文件。根据{{3}}和Effective Go中的初始化顺序的说明,这应该足以确保您的日志记录首先被初始化。
答案 1 :(得分:0)
如果程序包A的init函数依赖于其他事情,那么仅可以放置其他内容的地方位于A所依赖的程序包的init函数中。如果你希望能够对其他内容进行参数化,您需要将所有内容从init
移出并移动到手动调用的函数(称为CustomInit
或其他内容)中,您可以为其控制调用顺序,参数,等
基本上,您不能使用参数化的init函数。由于A的init函数记录到参数化的日志记录对象,因此它(间接)参数化,因此您不能使用内置的init
函数。