변수를 포함하여 오류 콘솔에 메시지를 인쇄하려면 어떻게해야합니까?
예를 들면 다음과 같습니다.
print('x=%d', x);
변수를 포함하여 오류 콘솔에 메시지를 인쇄하려면 어떻게해야합니까?
예를 들면 다음과 같습니다.
print('x=%d', x);
답변:
console.log()
IE를 포함한 모든 브라우저에서 작동해야한다는 것을 지적 할 가치가 있습니다. 그러나 모든 경우에 당시에는 디버거 창이 열려 있어야합니다. 그렇지 않으면 호출하면 console
오류가 발생합니다.
console.error(message); //gives you the red errormessage
console.log(message); //gives the default message
console.warn(message); //gives the warn message with the exclamation mark in front of it
console.info(message); //gives an info message with an 'i' in front of the message
로깅 메시지에 CSS를 추가 할 수도 있습니다.
console.log('%c My message here', "background: blue; color: white; padding-left:10px;");
console.log
당신이 사용 하는이 모든 년 동안 콘솔 내에서 CSS를 사용할 수 있습니다 : |
JavaScript 콘솔에는 예외가 기록됩니다. Firebug를 사용하지 않으려면 사용할 수 있습니다 .
function log(msg) {
setTimeout(function() {
throw new Error(msg);
}, 0);
}
용법:
log('Hello World');
log('another message');
throw
포장 해야하는지 설명해 주 setTimeout
시겠습니까?
브라우저 간 작동하는이 작업을 수행하는 좋은 방법 중 하나는 JavaScript 디버깅 : 경고를 버리십시오! .
throw()
확실히이 방법이 아닙니다. 조만간 문제가 생길 것입니다. 나를 위해 그것은 더 빨랐다 :(
다음은 디버거 콘솔이 아닌 브라우저의 오류 콘솔에 메시지를 인쇄하는 방법에 대한 문자적인 질문에 대한 해결책입니다. 디버거를 우회해야 할 이유가있을 수 있습니다.
오류 콘솔에서 메시지를 가져 오기 위해 오류를 발생시키는 제안에 대한 의견에서 언급했듯이 한 가지 문제는 이것이 실행 스레드를 중단한다는 것입니다. 스레드를 중단하지 않으려면 setTimeout을 사용하여 생성 된 별도의 스레드에서 오류를 발생시킬 수 있습니다. 따라서 내 솔루션 (Ivo Danihelka의 솔루션으로 정교화 됨) :
var startTime = (new Date()).getTime();
function logError(msg)
{
var milliseconds = (new Date()).getTime() - startTime;
window.setTimeout(function () {
throw( new Error(milliseconds + ': ' + msg, "") );
});
}
logError('testing');
시간 초과로 인해 메시지가 표시되는 순서가 왜곡 될 수 있으므로 시작 시간 이후의 시간 (밀리 초)을 포함합니다.
Error 메서드에 대한 두 번째 인수는 파일 이름에 대한 것입니다. 여기서는 쓸모없는 파일 이름과 줄 번호가 출력되지 않도록 빈 문자열입니다. 호출자 기능을 얻을 수 있지만 간단한 브라우저 독립적 인 방식으로는 불가능합니다.
오류 아이콘 대신 경고 또는 메시지 아이콘이있는 메시지를 표시 할 수 있으면 좋을 것입니다. 그러나 그 방법을 찾을 수 없습니다.
throw를 사용할 때의 또 다른 문제점은 둘러싼 try-catch에 의해 잡히고 버릴 수 있으며, 던지기를 별도의 스레드에두면 해당 장애물도 피할 수 있다는 것입니다. 그러나 window.onerror 핸들러가 다른 것을 수행하는 것으로 대체되는 경우 오류가 발생할 수있는 또 다른 방법이 있습니다. 거기 당신을 도울 수 없습니다.
실제로 질문에 대답하려면 :
console.error('An error occurred!');
console.error('An error occurred! ', 'My variable = ', myVar);
console.error('An error occurred! ' + 'My variable = ' + myVar);
오류 대신 정보, 로그 또는 경고를 사용할 수도 있습니다.
console.error(..)
비표준 기능이므로 프로덕션 환경에서는 사용해서는 안된다고 말합니다 . 이것에 대해 무엇을 취합니까? console.error
vs를 사용하는 초보자 프로그래머에게 제안 사항이 console.log
있습니까?
위에서 언급 한 'throw ()'에 대한 참고 사항. 그것은 페이지의 실행을 완전히 멈추는 것 같습니다 (IE8에서 확인했습니다). "특정 변수 추적과 같은 진행중인 프로세스"에 로깅하는 데별로 유용하지 않습니다.
내 제안은 아마도 문서의 어딘가에 textarea 요소 를 추가하고 필요할 때마다 정보를 기록하기 위해 값 을 변경하거나 텍스트에 추가 하는 것입니다 ...
console.log()
, throw()
등 또한,의 행동에 아무것도 잘못이 throw()
당신이 암시하는 것 같은 -가 실행을 중지한다는 사실은 의도적 문서화 (이다 개발자. mozilla.org/en-US/docs/Web/JavaScript/Reference/… ) 및 다른 프로그래밍 언어에서 예외가 발생 / 포착되는 방식과 일치합니다. (만약 실행을 멈추지 않고 변수의 내용을 기록하고 싶다면 그것이 바로 그 일 console.log()
입니다.)
console.log
이 있었으므로 사람들은 대안을 제시했습니다. 정보 throw()
실행을 중지 물론- 은 의도적이다, 아무도 그렇지 않은 말했다. 그렇기 때문에 일반적으로 런타임에 디버그 정보를 기록하는 좋은 방법이 아닌 이유 는 무엇입니까?
항상 그렇듯이 Internet Explorer는 rollerskates의 큰 코끼리입니다 console.log()
.
jQuery의 로그 는 매우 쉽게 조정할 수 있지만 어디에나 추가해야하는 어려움이 있습니다. jQuery를 사용하는 경우 한 가지 해결책은 먼저 jQuery 파일에 넣는 것입니다.
function log()
{
if (arguments.length > 0)
{
// Join for graceful degregation
var args = (arguments.length > 1) ? Array.prototype.join.call(arguments, " ") : arguments[0];
// This is the standard; Firebug and newer WebKit browsers support this.
try {
console.log(args);
return true;
} catch(e) {
// Newer Opera browsers support posting erros to their consoles.
try {
opera.postError(args);
return true;
}
catch(e)
{
}
}
// Catch all; a good old alert box.
alert(args);
return false;
}
}
완전한 콘솔 API 참조는 https://developer.chrome.com/devtools/docs/console-api 를 방문 하십시오.
console.error(object[Obj,....])\
이 경우 객체는 오류 문자열입니다.
function foo() {
function bar() {
console.trace("Tracing is Done here");
}
bar();
}
foo();
console.log(console); //to print console object
console.clear('console.clear'); //to clear console
console.log('console.log'); //to print log message
console.info('console.info'); //to print log message
console.debug('console.debug'); //to debug message
console.warn('console.warn'); //to print Warning
console.error('console.error'); //to print Error
console.table(["car", "fruits", "color"]);//to print data in table structure
console.assert('console.assert'); //to print Error
console.dir({"name":"test"});//to print object
console.dirxml({"name":"test"});//to print object as xml formate
To Print Error:- console.error('x=%d', x);
console.log("This is the outer level");
console.group();
console.log("Level 2");
console.group();
console.log("Level 3");
console.warn("More of level 3");
console.groupEnd();
console.log("Back to level 2");
console.groupEnd();
console.log("Back to the outer level");
이를 수행하는 가장 간단한 방법은 다음과 같습니다.
console.warn("Text to print on console");
질문에 대답하기 위해 ES6 기능을 사용할 수 있습니다.
var var=10;
console.log(`var=${var}`);
콘솔로 인쇄되지는 않지만 일부 디버깅에 유용 할 수있는 메시지와 함께 경고 팝업이 열립니다.
그냥 해:
alert("message");