i wish to place print debug messages in my code however i solely need them to be compiled in if debug symbols are included at compile time, what’s one of the simplest ways to go about doing this?
tldr; compile debug bin print debug message, compile launch bin compiler ignores debug messages.
1 Like
The best solution to obtain this in Go is by utilizing construct tags with two separate recordsdata in the identical package deal listing.
1. Create a file named debug_on.go:
The primary line have to be the construct tag:
//go:construct debug
package deal major
import “log”
func DebugLog(format string, v …any) { log.Printf(“[DEBUG] “+format, v…) }
2. Create a file named debug_off.go:
The primary line have to be:
//go:construct !debug
package deal major
func DebugLog(format string, v …any) {}
3. Utilization in code:
Simply name DebugLog(“your message: %s”, worth) in your major code.
4. The best way to compile or run:
For Debug mode (consists of debug messages):
go run -tags debug .
go construct -tags debug -o app-debug
For Launch mode (debug perform turns into an empty no-op and will get optimized away):
go run .
go construct -o app-release
1 Like

