2013-07-09 8 views
0

다음 명령을 실행 중이며 out.log 파일의 출력을보고 싶지만 아무것도 인쇄하지 않습니다. 실패한 호출 : JS 오류 : 콘솔이 정의되지 않은 Mongojs print 및 console.log가 작동하지 않습니다.

/tmp/mongodb/bin/mongo mydatabase_name /tmp/mongodb/scripts/test.js >> out.log 

그것은 오류를 줄

db.system.js.save (
{ _id:"run_job", 
    value: function() { 

    console.log("in function"); 
    print("in function>>"); 
    db.myUser.find().forEach(
    function(eachuser){ 
     console.log("eachuser id" + eachuser._id); 
     var lower_id = eachuser._id.toLowerCase(); 
     console.log("Lowercase id" + lower_id); 
    });  
    } 
} 
); 

내 test.js의 내용이다. 그래서 console.log가 제거되었습니다. 그러나 여전히 인쇄 기능을 사용하여 인쇄하지는 않습니다. 감사합니다. .

+1

'Print'와'printjson' 모두 콘솔 대신 mongod 로그 파일로갑니다. MongoDB 콘솔에는'console' 객체가 없습니다. :) – WiredPrairie

+1

또한 mongod에 대해 구성된 'logpath'가 없는지 확인하십시오. 설정되어 있지 않다면, print (그리고 다른 로깅)의 모든 출력은'/ dev/stdout'로 가야합니다. – WiredPrairie

+0

답장을 보내 주셔서 감사합니다. 그래서 out.log 파일에 출력을 얻을 수있는 다른 방법은 없을까요? – NewQueries

답변

1

MongoDB 쉘에 정의 된 console 오브젝트가 없습니다.

전 세계에서 사용할 수있는 printprintjson 함수를 사용해야합니다.

print("Hi! I'm in your log!"); 

인쇄 된 내용은 현재 로그 파일로 출력됩니다. 당신의 mongo 설정에 정의 된 로그 파일이 없다면, 화면/stdout에 출력 될 것입니다. 그러면 원하는 경우 결과를 파일로 파이프 할 수 있습니다. (또는 당신이 생성 한 로그 파일을 사용하고 싶을 수도 있습니다. MongoDB).

console.log 코드를 사용하고 있다면 printprintjson을 통해 출력을 리디렉션하는 polyfill을 빌드 할 수 있습니다.

관련 문제