2014-11-19 3 views
4

Node.js의 console.log 출력 길이에는 제한이 있습니까? 다음은 최대 56462까지 숫자를 인쇄 한 다음 중지합니다. MySQL에서 데이터 집합을 반환하고 출력이 327k 문자 다음에 끝나기 때문에이 문제가 발생했습니다.Node.js console.log 길이 제한이 있습니까?

console.log(out.substring(out.length - 23)); 

반환 :

99996 99997 99998 99999 

이 노드 v0.6.14을 사용하고이 99999까지 지난 몇 숫자를 반환으로

var out = ""; 
for (i = 0; i < 100000; i++) { 
    out += " " + i; 
} 

console.log(out); 

문자열 자체는 좋은 것 같다.

답변

3

더 많은 메모리가있는 컴퓨터에서 그렇게 많이 쓰려고 했습니까? https://github.com/joyent/node/blob/cfcb1de130867197cbc9c6012b7e84e08e53d032/lib/console.js#L55
그리고 스트림 메모리에 데이터를 버퍼링 할 수 있습니다 : 노드 소스 코드를 콘솔에 따르면
이 스트림으로 쓰는 당신은 스트림으로 reeeaally 많은 양의 데이터를 넣을 경우에 따라서 http://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback

을, 당신은 메모리 천장에 충돌 할 수있다 . 나는 당신이 당신의 데이터를 분할 process.stdout.write 방법으로 먹이를 권하고 싶습니다, 여기 예제 : http://nodejs.org/api/stream.html#stream_event_drain

+0

해서는 안 응용 프로그램 충돌을 사용하는 경우 파일로 출력을 사용하는 것이 좋습니다 오류가 있거나 단순히 데이터를 자동으로 삭제하는 대신 메모리 제한을 설정할 때 예외가 발생합니까? – binki

-1

나는 노드> 6.0

const output = fs.createWriteStream('./stdout.log'); 
const errorOutput = fs.createWriteStream('./stderr.log'); 
// custom simple logger 
const logger = new Console(output, errorOutput); 
// use it like console 
var count = 5; 
logger.log('count: %d', count); 
// in stdout.log: count 5