2017-03-06 1 views
0

.py 스크립트를 실행하여 mongodb.conf 파일의 다양한 구성 요소의 로그 수준을 설정하고 싶습니다. 나는 보통 update_one과 같은 데이타베이스 또는 문제없이 삽입하는 기본 명령을 사용한다. 오류가 난 점점 오전 :PyMongo 로그 수준 설정

"형식 오류를 '수집'객체가 호출되지 않습니다 당신이 그런 방법이 존재하지 않기 때문에 그 실패는 '데이터베이스'개체의 'setloglevel'메소드를 호출하는 것을 의미하는 경우

.. 나는 setLogLevel을 시도했습니다, set_log_level과 몇 가지 다른 온라인 pymongo 문서 또는하지 미세 아무것도 수

을 내가 로그 레벨 설정이 가능하다 어떻게 감사를 사전에

코드 :.

def setlvl(): 

## Connection to the Mongo Service ## 

    try: 
     conn=pymongo.MongoClient("myip_address") 
     print("Connected successfully!!!") 
    except pymongo.errors.ConnectionFailure: 
    print("Could not connect to MongoDB: %s" % e) 

    print("Connection:",conn) 

## Connect to the DataBase ## 

    db = conn.mydatabase 
    print("database:", db)  

## Update log level ## 

    loglvl = db.setloglevel 
    result=loglvl(5, "storage") 

setlvl() 
.?.

답변

0

"setLogLevel"은 자바 스크립트로 구현 된 몽고 쉘 함수입니다.

> db.setLogLevel 
function (logLevel, component) { 
    return this.getMongo().setLogLevel(logLevel, component); 
} 

확인을, 그래서 더 깊게 정말 구현 보자 : 당신은 괄호없이 몽고 쉘에 이름을 입력하여 몽고 쉘 함수의 구현을 볼 수 있습니다 이제

> db.getMongo().setLogLevel 
function (logLevel, component) { 
    componentNames = []; 
    if (typeof component === "string") { 
     componentNames = component.split("."); 
    } else if (component !== undefined) { 
     throw Error("setLogLevel component must be a string:" + tojson(component)); 
    } 
    var vDoc = {verbosity: logLevel}; 

    // nest vDoc 
    for (var key, obj; componentNames.length > 0;) { 
     obj = {}; 
     key = componentNames.pop(); 
     obj[key] = vDoc; 
     vDoc = obj; 
    } 
    var res = this.adminCommand({setParameter: 1, logComponentVerbosity: vDoc}); 
    if (!res.ok) 
     throw _getErrorWithCode(res, "setLogLevel failed:" + tojson(res)); 
    return res; 
} 

을 우리 쉘이 관리 데이터베이스에서 "setParameter"기능을 실행하는 것을보십시오. 그러나 setParameter 문서를 참조하십시오 :

from bson import SON 

from pymongo import MongoClient 

c = MongoClient() 

result = c.admin.command(SON([ 
    ("setParameter", 1), 
    ("logComponentVerbosity", { 
     "storage": { 
      "verbosity": 5, 
      "journal": { 
       "verbosity": 1 
      } 
     } 
    })])) 

print(result) 
"setParameter를"는 MongoDB의 명령이기 때문에

https://docs.mongodb.com/manual/reference/command/setParameter/

, 우리가 PyMongo 우리가 PyMongo 어떤 MongoDB의 명령을 실행하여 같은 방법으로 실행할 수 있습니다