0

I need to log a huge number of events when running a .js file, and so far I've tried to use console.log(data) to record all the data, as then I can save from the browser log (I'm using Chrome). However, I've run into the problem that there are so many log messages, the browser only holds the tail ones, whereas I need all of them.

I was wondering if I could either make Google Chrome store more log messages, or store the log as a file on the computer? I need to be able to append as I do not know when the logs will stop, and I would prefer not to have to send data through a server to have a client receive and store the log locally.

Community
  • 1
  • 1
Nabushika
  • 364
  • 1
  • 17
  • Have you tried with local storage? http://www.w3schools.com/html/html5_webstorage.asp – salih0vicX Sep 29 '16 at 13:11
  • 1
    Store them in a string instead of logging. Then print them: `document.body.innerHTML = ''+log_messages`.</plaintext></span> –&nbsp;<a href="../../users/113195/boldewyn" title="81,211 reputation" class="comment-user ">Boldewyn</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66836971_39771270"><span title="2016-09-29T13:12:43.787 License: CC BY-SA 3.0" class="relativetime-clean">Sep 29 '16 at 13:12</span></a></span> </div> </div> </li> <li id="comment-66837008" class="comment js-comment " data-comment-id="66837008" data-comment-owner-id="3141840" data-comment-score="0"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment66837008_39771270"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">@salih0vicX I thought that Chrome only stored 5MB of local storage? If so, this probably won't do; I'm storing a large amount of data.</span> –&nbsp;<a href="../../users/3141840/nabushika" title="364 reputation" class="comment-user owner">Nabushika</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66837008_39771270"><span title="2016-09-29T13:13:45.413 License: CC BY-SA 3.0" class="relativetime-clean">Sep 29 '16 at 13:13</span></a></span> </div> </div> </li> <li id="comment-66837057" class="comment js-comment " data-comment-id="66837057" data-comment-owner-id="3141840" data-comment-score="0"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment66837057_39771270"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">@Boldewyn I don't know when I will need to stop logging... can I use document.body.innerHTML += "string"?</span> –&nbsp;<a href="../../users/3141840/nabushika" title="364 reputation" class="comment-user owner">Nabushika</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66837057_39771270"><span title="2016-09-29T13:15:01.293 License: CC BY-SA 3.0" class="relativetime-clean">Sep 29 '16 at 13:15</span></a></span> </div> </div> </li> <li id="comment-66837185" class="comment js-comment " data-comment-id="66837185" data-comment-owner-id="1119279" data-comment-score="1"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> <span title="number of 'useful comment' votes received" class="warm">1</span> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment66837185_39771270"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">can you save it as a file? http://stackoverflow.com/a/32295448/1119279</span> –&nbsp;<a href="../../users/1119279/user1119279" title="331 reputation" class="comment-user ">user1119279</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66837185_39771270"><span title="2016-09-29T13:17:48.460 License: CC BY-SA 3.0" class="relativetime-clean">Sep 29 '16 at 13:17</span></a></span> </div> </div> </li> <li id="comment-66838152" class="comment js-comment " data-comment-id="66838152" data-comment-owner-id="893780" data-comment-score="0"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment66838152_39771270"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">Say that it would be possible, wouldn't that be a great way to annoy people by writing large amounts of data to their drives, potentially even filling up the drives completely?</span> –&nbsp;<a href="../../users/893780/robertklep" title="198,204 reputation" class="comment-user ">robertklep</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66838152_39771270"><span title="2016-09-29T13:38:54.673 License: CC BY-SA 3.0" class="relativetime-clean">Sep 29 '16 at 13:38</span></a></span> </div> </div> </li> <li id="comment-66848368" class="comment js-comment " data-comment-id="66848368" data-comment-owner-id="6858269" data-comment-score="0"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment66848368_39771270"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">@TheAbelo2 - How are you keeping track of the logs in your javascript code? Are you saving them to an array? Is it a circular array? Is that why you are only retaining the tail of the logs?</span> –&nbsp;<a href="../../users/6858269/vpappano" title="111 reputation" class="comment-user ">vpappano</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66848368_39771270"><span title="2016-09-29T13:20:20.730 License: CC BY-SA 3.0" class="relativetime-clean">Sep 29 '16 at 13:20</span></a></span> </div> </div> </li> <li id="comment-66848369" class="comment js-comment " data-comment-id="66848369" data-comment-owner-id="3141840" data-comment-score="0"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment66848369_39771270"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">I am using Console.log() and writing one message at a time, as a function is repeatedly called. I am only retaining the tail of the logs because there are so many log messages Google Chrome gets rid of the start ones.</span> –&nbsp;<a href="../../users/3141840/nabushika" title="364 reputation" class="comment-user owner">Nabushika</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66848369_39771270"><span title="2016-09-29T13:22:57.477 License: CC BY-SA 3.0" class="relativetime-clean">Sep 29 '16 at 13:22</span></a></span> </div> </div> </li> <li id="comment-66865924" class="comment js-comment " data-comment-id="66865924" data-comment-owner-id="3141840" data-comment-score="0"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment66865924_39771270"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">@robertklep I don't need an automatic download, or even a download at all. I just need a way to log a large amount of data and Google Chrome doesn't keep enough log data for me to do so.</span> –&nbsp;<a href="../../users/3141840/nabushika" title="364 reputation" class="comment-user owner">Nabushika</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66865924_39771270"><span title="2016-09-30T07:36:59.473 License: CC BY-SA 3.0" class="relativetime-clean">Sep 30 '16 at 07:36</span></a></span> </div> </div> </li> <li id="comment-66865997" class="comment js-comment " data-comment-id="66865997" data-comment-owner-id="893780" data-comment-score="0"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment66865997_39771270"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">@TheAbelo2 what I'm trying to say is that, most likely, Chrome won't allow you to do that, because it would be a good vector for malicious intent.</span> –&nbsp;<a href="../../users/893780/robertklep" title="198,204 reputation" class="comment-user ">robertklep</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/39771270/how-to-write-a-huge-log-in-javascript#comment66865997_39771270"><span title="2016-09-30T07:39:42.060 License: CC BY-SA 3.0" class="relativetime-clean">Sep 30 '16 at 07:39</span></a></span> </div> </div> </li> </ul> </div> </div> </div> </div> <div id="answers"> <a name="tab-top"></a> <div id="answers-header"> <div class="answers-subheader grid ai-center mb8"> <div class="grid--cell fl1"> <h2 class="mb0" data-answercount="9">1 Answers<span style="display:none;" itemprop="answerCount">1</span></h2> </div> </div> </div> <a name="39786457"></a> <div id="answer-39786457" class="answer " data-answerid="39786457" data-ownerid="3141840" data-score="0" itemprop="suggestedAnswer" itemscope="" itemtype="https://schema.org/Answer"> <div class="post-layout"> <div class="votecell post-layout--left"> <div class="js-voting-container grid jc-center fd-column ai-stretch gs4 fc-black-200" data-post-id="39786457"> <button class="js-vote-up-btn grid--cell s-btn s-btn__unset c-pointer"><svg aria-hidden="true" class="m0 svg-icon iconArrowUpLg" width="36" height="36" viewBox="0 0 36 36"><path d="M2 26h32L18 10 2 26z"></path></svg></button> <div class="js-vote-count grid--cell fc-black-500 fs-title grid fd-column ai-center" itemprop="upvoteCount" data-value="0">0</div> </div> </div> <div class="postcell post-layout--right"> <div class="s-prose js-post-body" itemprop="text"><p>In the end, I used <code>File</code> and <code>Blob</code> to make a download link to the file that was saved when the log stopped, providing a download link:</p> <pre><code>function fileOut(data) { properties = {type: 'plain/text'}; try { file = new File(data, "file.txt", properties); } catch (e) { file = new Blob(data, properties); } url = URL.createObjectURL(file); document.getElementById('gb-log').href = url; // Create download link } </code></pre></div> <div class="mb0"> <div class="mt16 grid gs8 gsy fw-wrap jc-end ai-start pt4 mb16"> <div class="grid--cell mr16 fl1 w96"></div> <div class="post-signature owner grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="answered Sep 30 '16 at 07:57">answered Sep 30 '16 at 07:57</time> <a href="../../users/3141840/nabushika" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/3141840.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="Nabushika" /> </a> <div class="s-user-card--info"> <a href="../../users/3141840/nabushika" class="s-user-card--link">Nabushika</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">364</li> <li class="s-award-bling s-award-bling__silver" title="1 silver badges">1</li> <li class="s-award-bling s-award-bling__bronze" title="17 bronze badges">17</li> </ul> </div> </div> </div> </div> </div> </div> <div class="post-layout--right js-post-comments-component"> </div> </div> </div> </div> </div> </div> </div> <script src="../../static/js/stack-icons.js"></script> <script src="../../static/js/fromnow.js"></script> </body> </html>