@@ -33,20 +33,23 @@ export async function GET(req: Request) {
3333 ) ;
3434 }
3535
36- logger . info ( `Starting screenshot for URL: ${ url } ` ) ;
36+ logger . info ( `[SCREENSHOT] Starting screenshot for URL: ${ url } ` ) ;
3737
3838 try {
3939 // Get browser instance
40+ logger . info ( `[SCREENSHOT] Attempting to get browser instance` ) ;
4041 const browser = await getBrowser ( ) ;
41- logger . info ( ' Browser instance acquired' ) ;
42+ logger . info ( `[SCREENSHOT] Browser instance acquired successfully` ) ;
4243
4344 // Create a new page
45+ logger . info ( `[SCREENSHOT] Creating new page` ) ;
4446 page = await browser . newPage ( ) ;
45- logger . info ( ' New page created' ) ;
47+ logger . info ( `[SCREENSHOT] New page created successfully` ) ;
4648
4749 // Set viewport
50+ logger . info ( `[SCREENSHOT] Setting viewport` ) ;
4851 await page . setViewport ( { width : 1600 , height : 900 } ) ;
49- logger . info ( ' Viewport set to 1600x900' ) ;
52+ logger . info ( `[SCREENSHOT] Viewport set successfully` ) ;
5053
5154 // Navigate to URL with increased timeout and more reliable wait condition
5255 await page . goto ( url , {
@@ -73,31 +76,40 @@ export async function GET(req: Request) {
7376 }
7477
7578 // Take screenshot
79+ logger . info ( `[SCREENSHOT] Taking screenshot` ) ;
7680 const screenshot = await page . screenshot ( {
7781 type : 'png' ,
7882 fullPage : true ,
7983 } ) ;
80- logger . info ( ' Screenshot captured' ) ;
84+ logger . info ( `[SCREENSHOT] Screenshot captured successfully, size: ${ screenshot . length } bytes` ) ;
8185
8286 // Clean up
83- if ( page ) await page . close ( ) ;
84- logger . info ( 'Page closed' ) ;
87+ if ( page ) {
88+ logger . info ( `[SCREENSHOT] Closing page` ) ;
89+ await page . close ( ) ;
90+ logger . info ( `[SCREENSHOT] Page closed successfully` ) ;
91+ }
8592
93+ logger . info ( `[SCREENSHOT] Returning screenshot response` ) ;
8694 return new Response ( screenshot , {
8795 headers : {
8896 'Content-Type' : 'image/png' ,
89- 'Cache-Control' : 's-maxage=3600' ,
97+ 'Cache-Control' : 'no-cache, no-store, must-revalidate' ,
98+ 'Pragma' : 'no-cache' ,
99+ 'Expires' : '0'
90100 } ,
91101 } ) ;
92102 } catch ( error : any ) {
93- logger . error ( 'Screenshot error:' , error ) ;
103+ logger . error ( `[SCREENSHOT] Error capturing screenshot: ${ error . message } ` , error ) ;
104+ logger . error ( `[SCREENSHOT] Error stack: ${ error . stack } ` ) ;
94105
95106 if ( page ) {
96107 try {
108+ logger . info ( `[SCREENSHOT] Attempting to close page after error` ) ;
97109 await page . close ( ) ;
98- logger . info ( 'Closed page after error' ) ;
110+ logger . info ( `[SCREENSHOT] Successfully closed page after error` ) ;
99111 } catch ( closeError ) {
100- logger . error ( ' Error closing page:' , closeError ) ;
112+ logger . error ( `[SCREENSHOT] Error closing page: ${ closeError . message } ` ) ;
101113 }
102114 }
103115
@@ -108,12 +120,13 @@ export async function GET(req: Request) {
108120 ) {
109121 try {
110122 if ( browserInstance ) {
123+ logger . warn ( `[SCREENSHOT] Resetting browser instance due to protocol error` ) ;
111124 await browserInstance . close ( ) ;
112- logger . warn ( 'Browser instance was closed due to protocol error' ) ;
113125 browserInstance = null ;
126+ logger . warn ( `[SCREENSHOT] Browser instance reset successfully` ) ;
114127 }
115128 } catch ( closeBrowserError ) {
116- logger . error ( ' Error closing browser:' , closeBrowserError ) ;
129+ logger . error ( `[SCREENSHOT] Error closing browser: ${ closeBrowserError . message } ` ) ;
117130 }
118131 }
119132
0 commit comments