2013-07-09 127 views
0

我正在運行以下命令,我想看到我的out.log文件中的輸出,但它不打印任何東西。Mongojs打印和console.log不工作

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

這些內容在我的test.js

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); 
    });  
    } 
} 
); 

它給錯誤:調用失敗:JS錯誤:控制檯沒有定義。所以它刪除了console.log。但它仍然不使用打印功能進行打印。 謝謝。

+1

'Print'&'printjson'都轉到mongod日誌文件而不是控制檯。 MongoDB控制檯中沒有'console'對象。 :) – WiredPrairie

+1

此外,請確保您沒有爲Mongo配置'logpath'。如果沒有設置,print(和其他日誌記錄)的所有輸出應該轉到'/ dev/stdout'。 – WiredPrairie

+0

感謝您的回覆。那麼我可以在out.log文件中獲得輸出嗎? – NewQueries

回答

1

在MongoDB shell中沒有定義console對象。

您需要使用全球可用的printprintjson函數。

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

打印的任何東西都會發送到當前日誌文件。如果您的mongo配置中沒有定義日誌文件,那麼它將被髮送到屏幕/標準輸出,這將允許您將結果傳輸到文件(如果您想要的話)(或者您可能只想使用由生成的日誌文件MongoDB的)。

如果你有一堆你使用的代碼是console.log,你可以通過printprintjson來構建一個重定向輸出的polyfill。