[Win] Override node's console and output stream with chromium's logging.
On Window node doesn't outputing as GUI program, so we have to switch to chromium's implementation. Hacking into node (like what we did before this commit) would sometimes make the outputing blocked.
This commit is contained in:
parent
a163b148ce
commit
2f2cbce9b9
3 changed files with 18 additions and 0 deletions
|
@ -1,6 +1,12 @@
|
|||
fs = require 'fs'
|
||||
path = require 'path'
|
||||
|
||||
# Redirect node's console to use our own implementations, since node can not
|
||||
# handle output when running as GUI program.
|
||||
if process.platform is 'win32'
|
||||
console.log = console.error = console.warn = process.log
|
||||
process.stdout.write = process.stderr.write = process.log
|
||||
|
||||
# Enable idle gc.
|
||||
process.atomBinding('idle_gc').start()
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ void AtomBindings::BindTo(v8::Handle<v8::Object> process) {
|
|||
node::SetMethod(process, "atomBinding", Binding);
|
||||
node::SetMethod(process, "crash", Crash);
|
||||
node::SetMethod(process, "activateUvLoop", ActivateUVLoop);
|
||||
node::SetMethod(process, "log", Log);
|
||||
}
|
||||
|
||||
// static
|
||||
|
@ -96,4 +97,14 @@ v8::Handle<v8::Value> AtomBindings::ActivateUVLoop(const v8::Arguments& args) {
|
|||
return v8::Undefined();
|
||||
}
|
||||
|
||||
// static
|
||||
v8::Handle<v8::Value> AtomBindings::Log(const v8::Arguments& args) {
|
||||
std::string message;
|
||||
for (int i = 0; i < args.Length(); ++i)
|
||||
message += *v8::String::Utf8Value(args[i]);
|
||||
|
||||
logging::LogMessage("CONSOLE", 0, 0).stream() << message;
|
||||
return v8::Undefined();
|
||||
}
|
||||
|
||||
} // namespace atom
|
||||
|
|
|
@ -23,6 +23,7 @@ class AtomBindings {
|
|||
static v8::Handle<v8::Value> Binding(const v8::Arguments& args);
|
||||
static v8::Handle<v8::Value> Crash(const v8::Arguments& args);
|
||||
static v8::Handle<v8::Value> ActivateUVLoop(const v8::Arguments& args);
|
||||
static v8::Handle<v8::Value> Log(const v8::Arguments& args);
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(AtomBindings);
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue