Fix console.* calls on Windows

- Calls for console.* on browser process are printed with no need for
--enable-logging
- The output is without the logging prefix
- The cursor in the terminal is always after the last output
- The first output starts on a new line and not at the prompt
- console.* from renderer are not printed to cmd
- Added a missing '\n' in the default_app help output
This commit is contained in:
Eran Tiktin 2015-10-10 06:39:02 +03:00
parent e682dc7544
commit 1896deb10e
4 changed files with 8 additions and 3 deletions

View file

@ -5,6 +5,7 @@
#include "atom/app/atom_main_delegate.h" #include "atom/app/atom_main_delegate.h"
#include <string> #include <string>
#include <iostream>
#include "atom/app/atom_content_client.h" #include "atom/app/atom_content_client.h"
#include "atom/browser/atom_browser_client.h" #include "atom/browser/atom_browser_client.h"
@ -29,6 +30,9 @@ AtomMainDelegate::~AtomMainDelegate() {
bool AtomMainDelegate::BasicStartupComplete(int* exit_code) { bool AtomMainDelegate::BasicStartupComplete(int* exit_code) {
logging::LoggingSettings settings; logging::LoggingSettings settings;
#if defined(OS_WIN) #if defined(OS_WIN)
// On Windows the terminal returns immediately, so we add a new line to
// prevent output in the same line as the prompt.
std::wcout << std::endl;
#if defined(DEBUG) #if defined(DEBUG)
// Print logging to debug.log on Windows // Print logging to debug.log on Windows
settings.logging_dest = logging::LOG_TO_ALL; settings.logging_dest = logging::LOG_TO_ALL;

View file

@ -263,7 +263,7 @@ if (option.file && !option.webdriver) {
helpMessage += "A path to an Electron application may be specified. The path must be to \n"; helpMessage += "A path to an Electron application may be specified. The path must be to \n";
helpMessage += "an index.js file or to a folder containing a package.json or index.js file.\n\n"; helpMessage += "an index.js file or to a folder containing a package.json or index.js file.\n\n";
helpMessage += "Options:\n"; helpMessage += "Options:\n";
helpMessage += " -r, --require Module to preload (option can be repeated)"; helpMessage += " -r, --require Module to preload (option can be repeated)\n";
helpMessage += " -h, --help Print this usage message.\n"; helpMessage += " -h, --help Print this usage message.\n";
helpMessage += " -v, --version Print the version."; helpMessage += " -v, --version Print the version.";
console.log(helpMessage); console.log(helpMessage);

View file

@ -22,7 +22,7 @@ if process.platform is 'win32'
# Redirect node's console to use our own implementations, since node can not # Redirect node's console to use our own implementations, since node can not
# handle console output when running as GUI program. # handle console output when running as GUI program.
print = (args...) -> print = (args...) ->
process.log util.format(args...) process.log util.format(args...) + "\n"
console.log = console.error = console.warn = print console.log = console.error = console.warn = print
process.stdout.write = process.stderr.write = print process.stdout.write = process.stderr.write = print

View file

@ -6,6 +6,7 @@
#include <algorithm> #include <algorithm>
#include <string> #include <string>
#include <iostream>
#include "atom/common/atom_version.h" #include "atom/common/atom_version.h"
#include "atom/common/chrome_version.h" #include "atom/common/chrome_version.h"
@ -40,7 +41,7 @@ void FatalErrorCallback(const char* location, const char* message) {
} }
void Log(const base::string16& message) { void Log(const base::string16& message) {
logging::LogMessage("CONSOLE", 0, 0).stream() << message; std::wcout << message;
} }
} // namespace } // namespace