@@ -29,6 +29,7 @@ export class Tracer {
29
29
30
30
private readonly remoteTracingUrl : string | undefined
31
31
private readonly remoteWorkspaceDumpUrl : string | undefined
32
+ private readonly maximumMessageSize : number
32
33
private get isTracingEnabled ( ) : boolean {
33
34
return Boolean ( this . remoteWorkspaceDumpUrl || this . remoteTracingUrl ) ;
34
35
}
@@ -40,6 +41,8 @@ export class Tracer {
40
41
41
42
this . remoteWorkspaceDumpUrl = this . ctx . extensionConfig . get < string > ( 'remoteWorkspaceDumpUrl' ) ;
42
43
this . remoteTracingUrl = this . ctx . extensionConfig . get < string > ( 'remoteTracingUrl' ) ;
44
+ const maximumMessageSize = this . ctx . extensionConfig . get < number > ( 'tracing.maximumMessageSize' ) ;
45
+ this . maximumMessageSize = maximumMessageSize === undefined || maximumMessageSize < 0 ? 0 : maximumMessageSize | 0 ;
43
46
44
47
this . machineId = ( ( ) => {
45
48
const machineIdKey = 'tracing.machineId' ;
@@ -290,11 +293,17 @@ export class Tracer {
290
293
log += '\n' ;
291
294
if ( this . tracingConsent . get ( ) === 'yes' ) withSocket ( ( socket ) => {
292
295
if ( socket . readyState === WebSocket . OPEN ) {
293
- socket . send ( log , ( err ) => {
296
+ const send = ( msg : string ) => socket . send ( msg , ( err ) => {
294
297
if ( err ) {
295
298
this . logError ( 'socket send error' , err )
296
299
}
297
300
} ) ;
301
+
302
+ let start = 0 ;
303
+ while ( start < log . length ) {
304
+ send ( log . substring ( start , start + this . maximumMessageSize ) ) ;
305
+ start += this . maximumMessageSize ;
306
+ }
298
307
log = '' ;
299
308
}
300
309
} ) ;
0 commit comments