How to enable and configure verbose debugging output in Go?

To enable and configure verbose debugging output in Go, you can use the log package in the standard library. The log package provides a simple API for logging messages.

Here's an example of how to enable verbose debugging output:

package main import ( "log" "os" ) func main() { // Create a new logger with the "log.txt" file as the output destination file, err := os.OpenFile("log.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Fatal(err) } defer file.Close() // Set the log output to the file log.SetOutput(file) // Enable verbose debugging output log.SetFlags(log.LstdFlags | log.Lmicroseconds | log.Llongfile) // Log some messages log.Println("Debug message 1") log.Printf("Debug message 2: %d", 42) }

In this example, we first create a new log.txt file to store the logs. Then, we set the log output to this file using log.SetOutput(). We also enable verbose debugging output by combining various log flags using the | operator with log.SetFlags().

The log package provides various log flags that you can combine to configure the output format. In the example above, we used log.LstdFlags to include the date and time, log.Lmicroseconds to include microseconds, and log.Llongfile to include the full file path and line number.

You can adjust the log flags based on your specific debugging needs.