Skip to content Skip to sidebar Skip to footer

Ie11 Truncates String In Console

I have a string of maybe 20 or 30 lines i'd like to output to the console all in one console.log call. This works great in Chrome, but IE11 truncates about half of the string in th

Solution 1:

A 1024 character limit on a single message isn't exactly unreasonable. Even if it was, IE offers no means of altering that limitation.

Out of curiosity, why is this one big block rather than individual calls to console.log() grouped with console.group()?

console.group("Wed Jan 7 20:41:16 GMT-0700 2015 530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:181 - Initiating recording...");
console.log("41:17:233 - Creating NetStream...");
console.log("41:17:240 - NetStream created.");
console.log("41:17:240 - Recording ready.");
console.groupEnd();
console.group("Wed Jan 7 20:41:16 GMT-0700 2015 NetConnectionQueue - rtmp://AMS2alt.commercialtribe.net/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:16:867 - Initializing...");
console.log("41:16:868 - Creating negotiator...");
console.log("41:17:175 - Connection success: rtmp://AMS2alt.commercialtribe.net:1935/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:175 - Connection added to queue.");
console.log("41:17:182 - Connection request recieved...");
console.log("41:17:183 - Connection request fulfilled.");
console.log("41:17:452 - Connection success: rtmp://AMS2alt.commercialtribe.net:1935/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:452 - Connection added to queue.");
console.groupEnd();
console.group("Wed Jan 7 20:41:16 GMT-0700 2015 NetNegotiator Log");
console.log("41:16:890 - Attempting: rtmp://AMS2alt.commercialtribe.net:1935/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:174 - Negotiator reset");
console.log("41:17:194 - Attempting: rtmp://AMS2alt.commercialtribe.net:1935/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:282 - Attempting: rtmp://AMS2alt.commercialtribe.net:443/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:339 - Attempting: rtmp://AMS2alt.commercialtribe.net:80/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:400 - Attempting: rtmpt://AMS2alt.commercialtribe.net:1935/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:451 - NetConnection attempt failed: rtmp://AMS2alt.commercialtribe.net:443/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9");
console.log("41:17:452 - Negotiator reset");
console.groupEnd();

sample console output showing multiple groups of logged statements

If the message is received as one big string you could certainly log it in smaller slices:

functionprocessChunks(sliceable, chunkSize, callback) {
  var i = 0,
    n = sliceable.length;
  while (i < n) {
    callback(sliceable.slice(i, i += chunkSize));
  }
}
// small sample with chunkSize of 7processChunks("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", 7, console.log);
<scriptsrc="https://gh-canon.github.io/stack-snippet-console/console.min.js"></script><script>console.config({maximize:true,timeStamps:false})</script><style>.as-console-wrapper{display:block;}</style>

Solution 2:

I know this is an old question but just posting in case this helps anyone who finds it.

If you're like me and just wanted to make sure you're getting all the right data into a string for a simple test, you could do something like this. Maybe a little complicated but was helpful when I had a long string I needed to check was formed correctly and had the right content. You could definitely pair this with the console.group() mentioned in the accepted (canon's) answer too.

functionconsoleLog(str, blockSize) {
    // blockSize is a parameter only to support the tests.if (blockSize === undefined) {
        blockSize = 1024;
    }
    var limit = Math.floor(str.length / blockSize);
    for (var k = 0; k < limit+1; k++) {
      if (k == limit)
          console.log(str.substring(blockSize*k, str.length));
      elseconsole.log(str.substring(blockSize*k, blockSize*(k+1)));
    }
}

// Tests.// Should print:// aaaaa// bbbbb// cconsoleLog('aaaaabbbbbc', 5);

// Should print:// aaaaa// bbbbbconsoleLog('aaaaabbbbb', 5);

Solution 3:

If the text you should log is not broken into lines, or the lines might be longer than the limit, you can use this simple function to "format" the log output:

functionlogMessage(title, message) {
    // make sure if the 'console' object and its methods are available,// to avoid issues, like your JS code is broken by logging.// see: https://stackoverflow.com/a/7742862/704022if (console && console.log && console.group && console.groupEnd) {
        var maxLength = 10; // set to 10 to enable easier testing, should be 1024console.group(title);
        for (var pos = 0; pos < message.length ; pos += maxLength) {
            console.log(message.substring(pos, pos + maxLength));
        }
        console.groupEnd();
    }
}

logMessage("Test", "0123456789012345678901234");

Post a Comment for "Ie11 Truncates String In Console"