2014-04-01 45 views
0

我目前每100-200次使用都會出現一個非常奇怪的偶然錯誤。如何在不需要干擾正常開發的情況下靜默記錄東西

我真的不能重現它,我不想花太多時間修復它,因爲它不是高優先級,但我仍然想修復它。

爲了做到這一點,我實際上需要在整個地方有30個左右的console.log,這可能會有所幫助。

問題是,那些console.logs對於正常的開發過程來說非常煩人,並且完全堵塞了我的控制檯,這是一個非常高的獎勵,以便有可能隨時瞭解有關問題的更多信息這個奇怪的錯誤發生。

我想知道最好的方法是什麼?總結一下,我需要擁有「沉默」的console.log,這些不在我的途中,但會在bug再次出現時出現在那裏。

我已經給它一些,雖然我有兩個選擇,但我不知道我太高興與其中任何一個:

  1. 做一個數組,我將推動相關的信息和然後在錯誤發生時從控制檯打印出來。
  2. 製作一個文本文件日誌,記錄相關信息並在發生錯誤時通讀它。

我是否錯過了更好的東西?哪種方法可以使用這兩種或者我可能會丟失的兩種。

編輯:請不要說這種行爲不會產生任何錯誤,只是一個奇怪的用戶界面行爲。

+1

「我不知道我他們中的任何一個都很開心「爲什麼不呢?這些對我來說似乎完全合法。 –

+1

'console.debug''console.trace''控制檯。info'? –

+0

@PaulDraper沒有什麼特別錯誤。我只是覺得它們有點原始,我可能會錯過更整齊的東西。 (其實看看這個答案,這是我可能會錯過的那種東西:http://stackoverflow.com/a/22793132/463065) – Trufa

回答

1

可以使用grouping選項 - 見https://developers.google.com/chrome-developer-tools/docs/console-api#consolegroupobject_object

這允許你把一堆相關的調試語句在一起,但讓他們「崩潰」 - 這似乎是一個乾淨的方式您所描述的問題。

+0

有沒有辦法在登錄時定義組?在我看來,一個小組已經啓動,然後在該小組下面進行任何記錄,然後一個小組結束。這並不能真正幫助隨機日誌在不同的時間/地點開火。 – rgthree

+0

這似乎正是我正在尋找(不知道)。我會試一試並回復你。 – Trufa

+0

@rgthree你是對的這是一種討厭,現在阻止我使用這種解決方案。 – Trufa

2

我會用數組一個是這樣的

function silentConsole() { 
    this.data = []; 
} 
silentConsole.prototype.log = function(input) { 
    this.data.push(input); 
}; 
silentConsole.prototype.print = function() { 
    this.data.forEach(function(line){ 
     console.log("### " + line); 
    }); 
}; 

var sConsole = new silentConsole(); 
sConsole.log("something"); 
sConsole.print(); // "### something" in console 
+0

這是一段非常好的代碼。簡單,乾淨,做你需要的。如果這個錯誤不會使程序失效,這是一個很好的解決方案。否則,在您有機會檢查調試輸出之前,您會丟失信息。 – Floris

+0

@弗洛伊斯我忘記提及這個錯誤不會導致任何錯誤,在你提到它之前沒有想到它是相關的。我編輯了我的問題,感謝您提出問題。 – Trufa

+0

@Timo這是一段很棒的代碼,我想我會去做這個,我會等待一些其他的答案,但非常感謝,因爲它看起來很棒! – Trufa

1

發帖按照意見

答案您可以使用其他console日誌之一,諸如console.debugconsole.info

Chrome和Firefox可讓您選擇性地按日誌類型過濾控制檯,而且一些記錄程序甚至允許您通過文本或正則表達式過濾日誌。

鉻具體的答案

在Chrome中,你可以點擊漏斗,然後單擊或控制點擊組,你希望看到任何一個選項:

enter image description here

+0

感謝您的回答!順便說一句,這是一個[渠道](https://www.google.com/search?q=funnel&source=lnms&tbm=isch&sa=X&ei=two7U-jQMYnN7AbIw4CIAg&ved=0CAgQ_AUoQ&biw=1920&bih=992)不是橫着揚聲器:) – Trufa

+0

謝謝。我不知道那個奇怪的符號應該是什麼。他們曾經用電腦「UI」做的最糟糕的事情是用神祕符號代替有用的單詞。 –

+0

這是一種[Skeuomorphism](http://en.wikipedia.org/wiki/Skeuomorph),雖然有時圖像勝過千言萬語,但我同意某些UI文本元素不容易被圖像徽標替換。有些人認爲,要關閉x,想象如果你必須寫近。 – Trufa

相關問題