mirror of https://github.com/aria2/aria2
Add --stderr option to redirect all stdout log output to stderr
parent
aa863fa4d1
commit
db239c2853
|
@ -679,6 +679,13 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
|
||||||
op->addTag(TAG_ADVANCED);
|
op->addTag(TAG_ADVANCED);
|
||||||
handlers.push_back(op);
|
handlers.push_back(op);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
OptionHandler* op(new BooleanOptionHandler(
|
||||||
|
PREF_STDERR, TEXT_STDERR, A2_V_FALSE, OptionHandler::OPT_ARG));
|
||||||
|
|
||||||
|
op->addTag(TAG_ADVANCED);
|
||||||
|
handlers.push_back(op);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
OptionHandler* op(
|
OptionHandler* op(
|
||||||
new NumberOptionHandler(PREF_STOP, TEXT_STOP, "0", 0, INT32_MAX));
|
new NumberOptionHandler(PREF_STOP, TEXT_STOP, "0", 0, INT32_MAX));
|
||||||
|
|
|
@ -47,6 +47,7 @@ namespace global {
|
||||||
namespace {
|
namespace {
|
||||||
Console consoleCout;
|
Console consoleCout;
|
||||||
Console consoleCerr;
|
Console consoleCerr;
|
||||||
|
Console consoleCoutBackup;
|
||||||
};
|
};
|
||||||
|
|
||||||
void initConsole(bool suppress)
|
void initConsole(bool suppress)
|
||||||
|
@ -65,6 +66,12 @@ void initConsole(bool suppress)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void redirectStdoutToStderr()
|
||||||
|
{
|
||||||
|
consoleCoutBackup = std::move(consoleCout);
|
||||||
|
consoleCout = consoleCerr;
|
||||||
|
}
|
||||||
|
|
||||||
const Console& cout() { return consoleCout; }
|
const Console& cout() { return consoleCout; }
|
||||||
|
|
||||||
const Console& cerr() { return consoleCerr; }
|
const Console& cerr() { return consoleCerr; }
|
||||||
|
|
|
@ -51,6 +51,9 @@ namespace global {
|
||||||
// output sent to the console objects are discarded.
|
// output sent to the console objects are discarded.
|
||||||
void initConsole(bool suppress);
|
void initConsole(bool suppress);
|
||||||
|
|
||||||
|
// stdout is redirected to stderr.
|
||||||
|
void redirectStdoutToStderr();
|
||||||
|
|
||||||
const Console& cout();
|
const Console& cout();
|
||||||
const Console& cerr();
|
const Console& cerr();
|
||||||
|
|
||||||
|
|
|
@ -300,6 +300,9 @@ error_code::Value option_processing(Option& op, bool standalone,
|
||||||
showUsage("", oparser, global::cerr());
|
showUsage("", oparser, global::cerr());
|
||||||
return e.getErrorCode();
|
return e.getErrorCode();
|
||||||
}
|
}
|
||||||
|
if (standalone && op.getAsBool(PREF_STDERR)) {
|
||||||
|
global::redirectStdoutToStderr();
|
||||||
|
}
|
||||||
if (standalone && !op.getAsBool(PREF_ENABLE_RPC) &&
|
if (standalone && !op.getAsBool(PREF_ENABLE_RPC) &&
|
||||||
#ifdef ENABLE_BITTORRENT
|
#ifdef ENABLE_BITTORRENT
|
||||||
op.blank(PREF_TORRENT_FILE) &&
|
op.blank(PREF_TORRENT_FILE) &&
|
||||||
|
|
|
@ -370,6 +370,8 @@ PrefPtr PREF_MIN_TLS_VERSION = makePref("min-tls-version");
|
||||||
PrefPtr PREF_SOCKET_RECV_BUFFER_SIZE = makePref("socket-recv-buffer-size");
|
PrefPtr PREF_SOCKET_RECV_BUFFER_SIZE = makePref("socket-recv-buffer-size");
|
||||||
// value: 1*digit
|
// value: 1*digit
|
||||||
PrefPtr PREF_MAX_MMAP_LIMIT = makePref("max-mmap-limit");
|
PrefPtr PREF_MAX_MMAP_LIMIT = makePref("max-mmap-limit");
|
||||||
|
// value: true | false
|
||||||
|
PrefPtr PREF_STDERR = makePref("stderr");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FTP related preferences
|
* FTP related preferences
|
||||||
|
|
|
@ -324,6 +324,8 @@ extern PrefPtr PREF_MIN_TLS_VERSION;
|
||||||
extern PrefPtr PREF_SOCKET_RECV_BUFFER_SIZE;
|
extern PrefPtr PREF_SOCKET_RECV_BUFFER_SIZE;
|
||||||
// value: 1*digit
|
// value: 1*digit
|
||||||
extern PrefPtr PREF_MAX_MMAP_LIMIT;
|
extern PrefPtr PREF_MAX_MMAP_LIMIT;
|
||||||
|
// value: true | false
|
||||||
|
extern PrefPtr PREF_STDERR;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FTP related preferences
|
* FTP related preferences
|
||||||
|
|
|
@ -1085,5 +1085,8 @@
|
||||||
" size of those files. If file size is strictly\n" \
|
" size of those files. If file size is strictly\n" \
|
||||||
" greater than the size specified in this option,\n" \
|
" greater than the size specified in this option,\n" \
|
||||||
" mmap will be disabled.")
|
" mmap will be disabled.")
|
||||||
|
#define TEXT_STDERR \
|
||||||
|
_(" --stderr[=true|false] Redirect all console output that would be\n" \
|
||||||
|
" otherwise printed in stdout to stderr.")
|
||||||
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
Loading…
Reference in New Issue