diff --git a/hedgehog-extras.cabal b/hedgehog-extras.cabal
--- a/hedgehog-extras.cabal
+++ b/hedgehog-extras.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.4
 
 name:                   hedgehog-extras
-version:                0.4.5.1
+version:                0.4.5.2
 synopsis:               Supplemental library for hedgehog
 description:            Supplemental library for hedgehog.
 category:               Test
diff --git a/src/Hedgehog/Extras/Test/Golden.hs b/src/Hedgehog/Extras/Test/Golden.hs
--- a/src/Hedgehog/Extras/Test/Golden.hs
+++ b/src/Hedgehog/Extras/Test/Golden.hs
@@ -4,6 +4,7 @@
   ) where
 
 import           Control.Applicative
+import           Control.Exception (bracket_)
 import           Control.Monad
 import           Control.Monad.IO.Class (MonadIO (liftIO))
 import           Data.Algorithm.Diff (PolyDiff (Both), getGroupedDiff)
@@ -18,16 +19,30 @@
 import           Hedgehog (MonadTest)
 import           Hedgehog.Extras.Test.Base (failMessage)
 import           System.FilePath (takeDirectory)
-import           System.IO (FilePath)
+import           System.IO (FilePath, IO)
 
+import qualified Control.Concurrent.QSem as IO
 import qualified Data.List as List
 import qualified GHC.Stack as GHC
 import qualified Hedgehog.Extras.Test as H
 import qualified Hedgehog.Internal.Property as H
 import qualified System.Directory as IO
 import qualified System.Environment as IO
+import qualified System.IO as IO
 import qualified System.IO.Unsafe as IO
 
+sem :: IO.QSem
+sem = IO.unsafePerformIO $ IO.newQSem 1
+{-# NOINLINE sem #-}
+
+semBracket :: IO a -> IO a
+semBracket = bracket_ (IO.waitQSem sem) (IO.signalQSem sem)
+
+-- | The file to log whenever a golden file is referenced.
+mGoldenFileLogFile :: Maybe FilePath
+mGoldenFileLogFile = IO.unsafePerformIO $
+  IO.lookupEnv "GOLDEN_FILE_LOG_FILE"
+
 -- | Whether the test should create the golden files if the file does ont exist.
 createFiles :: Bool
 createFiles = IO.unsafePerformIO $ do
@@ -35,7 +50,9 @@
   return $ value == Just "1"
 
 -- | Diff contents against the golden file.  If CREATE_GOLDEN_FILES environment is
--- set to "1", then should the gold file not exist it would be created.
+-- set to "1", then should the gold file not exist it would be created.  If
+-- GOLDEN_FILE_LOG_FILE is set to a filename, then the golden file path will be
+-- logged to the specified file.
 --
 -- Set the environment variable when you intend to generate or re-generate the golden
 -- file for example when running the test for the first time or if the golden file
@@ -53,6 +70,9 @@
   -> FilePath -- ^ Reference file
   -> m ()
 diffVsGoldenFile actualContent referenceFile = GHC.withFrozenCallStack $ do
+  forM_ mGoldenFileLogFile $ \logFile ->
+    liftIO $ semBracket $ IO.appendFile logFile $ referenceFile <> "\n"
+
   fileExists <- liftIO $ IO.doesFileExist referenceFile
 
   if fileExists
@@ -62,7 +82,9 @@
       case difference of
         []       -> pure ()
         [Both{}] -> pure ()
-        _        -> failMessage callStack $ ppDiff difference
+        _        -> do
+          H.note_ $ "Golden test failed against golden file: " <> referenceFile
+          failMessage callStack $ ppDiff difference
     else if createFiles
       then do
         -- CREATE_GOLDEN_FILES is set, so we create any golden files that don't
@@ -80,7 +102,9 @@
     actualLines = List.lines actualContent
 
 -- | Diff file against the golden file.  If CREATE_GOLDEN_FILES environment is
--- set to "1", then should the gold file not exist it would be created.
+-- set to "1", then should the gold file not exist it would be created.  If
+-- GOLDEN_FILE_LOG_FILE is set to a filename, then the golden file path will be
+-- logged to the specified file.
 --
 -- Set the environment variable when you intend to generate or re-generate the golden
 -- file for example when running the test for the first time or if the golden file
