Some testcases are driving code that uses logger.debugWriter() when debug has not been enabled, this currently leads to a nil writer being returning, which causes code panics within the debug calls. This is an indirect side effect of the choice to move from a struct in the v1 poet logger, to an interface within the v2 logger. Many testcases do not initialize a logger, and run without debug being set, and yet end up driving code that attempts to log debug messages. Mostly these are ok when logged via the log.Debug* methods, but if the writer is obtained directly then panics can occur when the nil is dereferenced.
Rather than chasing down every testcase individually, it seems safer to return a no-op writer when debug is disabled.
Some testcases are driving code that uses logger.debugWriter() when debug has not been enabled, this currently leads to a nil writer being returning, which causes code panics within the debug calls. This is an indirect side effect of the choice to move from a struct in the v1 poet logger, to an interface within the v2 logger. Many testcases do not initialize a logger, and run without debug being set, and yet end up driving code that attempts to log debug messages. Mostly these are ok when logged via the log.Debug* methods, but if the writer is obtained directly then panics can occur when the nil is dereferenced.
Rather than chasing down every testcase individually, it seems safer to return a no-op writer when debug is disabled.
Added two testcases to check new behavior.