Go Package log: Difference between revisions
Jump to navigation
Jump to search
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=External= | |||
* https://golang.org/pkg/log | |||
=Internal= | =Internal= | ||
* [[Go_Logging#Standard_Library_log_Package|Go Logging]] | |||
* [[Go_Language_Modularization#log|Standard Library]] | |||
=Overview= | |||
The "log" package provides support for logging messages to <tt>stdout</tt>, <tt>stderr</tt> or custom devices. | |||
<syntaxhighlight lang='go'> | |||
import ( | |||
"log" | |||
) | |||
... | |||
log.Printf("something %s\n", "else") | |||
</syntaxhighlight > | |||
=Elements= | |||
==<tt>log.Fatal()</tt>, <tt>log.Fatalf()</tt>== | |||
{{External|https://golang.org/pkg/log/#Fatal}} | |||
<code>Fatal</code> is equivalent to <code>Print()</code> followed by a call to <code>os.Exit(1)</code>. | |||
=Recipes= | |||
==Changing the Logging Device== | |||
By default, the logger is set to write to <code>stderr</code>. To change that, execute <code>log.SetOutput()</code> from the <code>[[Go_Functions#init.28.29|init()]]</code> function, or at least before using the logging system. | |||
===Log to <tt>stdout</tt>=== | |||
<syntaxhighlight lang='go'> | |||
import ( | |||
"log" | |||
"os" | |||
) | |||
... | |||
func init() { | |||
// change the device for logging to stdout | |||
log.SetOutput(os.Stdout) | |||
} | |||
</syntaxhighlight > | |||
===Log to a File=== | |||
<syntaxhighlight lang='go'> | |||
import ( | |||
"log" | |||
"os" | |||
) | |||
... | |||
func init() { | |||
// change the device for logging to a custom file | |||
fileName := "/tmp/somefile.log" | |||
f, err := os.Create(fileName) | |||
if err != nil { | |||
fmt.Printf("failed to open log file %s for writing\n", fileName) | |||
... | |||
} else { | |||
log.SetOutput(f) | |||
} | |||
} | |||
</syntaxhighlight > |
Latest revision as of 21:11, 3 January 2024
External
Internal
Overview
The "log" package provides support for logging messages to stdout, stderr or custom devices.
import (
"log"
)
...
log.Printf("something %s\n", "else")
Elements
log.Fatal(), log.Fatalf()
Fatal
is equivalent to Print()
followed by a call to os.Exit(1)
.
Recipes
Changing the Logging Device
By default, the logger is set to write to stderr
. To change that, execute log.SetOutput()
from the init()
function, or at least before using the logging system.
Log to stdout
import (
"log"
"os"
)
...
func init() {
// change the device for logging to stdout
log.SetOutput(os.Stdout)
}
Log to a File
import (
"log"
"os"
)
...
func init() {
// change the device for logging to a custom file
fileName := "/tmp/somefile.log"
f, err := os.Create(fileName)
if err != nil {
fmt.Printf("failed to open log file %s for writing\n", fileName)
...
} else {
log.SetOutput(f)
}
}