[PATCH] D44226: [clangd] Add -log-lsp-to-stderr option
Ilya Biryukov via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 8 08:34:36 PST 2018
ilya-biryukov added inline comments.
================
Comment at: clangd/Logger.cpp:19
Logger *L = nullptr;
+bool Verbose_ = false;
} // namespace
----------------
simark wrote:
> ilya-biryukov wrote:
> > Could we move the flag to implementation of `Logger`?
> > I.e.:
> > ```
> > class Logger {
> > virtual log(const llvm::Twine &Message, bool Verbose);
> > };
> >
> > // Implementation of top-level log
> > void clangd::log(const llvm::Twine &Message) {
> > L->log(Message, /*Verbose=*/false);
> > // should also handle missing Logger by logging into llvm::errs()
> > }
> >
> > // Implementation of top-level vlog.
> > void clangd::vlog(const llvm::Twine &Message) {
> > L->log(Message, /*Verbose=*/true);
> > // should also handle missing Logger by logging into llvm::errs()
> > }
> > ```
> >
> > An implementation of the interface would decide whether to log or not, based on command-line argument.
> That's what I thought of doing first. The issue is that if we don't set a logger with LoggingSession, the log function prints to stderr itself. So if we don't check the Verbose flag there, the -v flag will have no effect when LoggingSession has not been called (I don't know if it's really a problem or not, since in practice we call it).
It shouldn't be a problem.
We're only missing `LoggingSession` in tests, so let's just print messages from `vlog` into `stderr` in the same way we do it with `log` now.
================
Comment at: clangd/tool/ClangdMain.cpp:79
+static llvm::cl::opt<bool> Verbose("verbose", llvm::cl::desc("Be more verbose"),
+ llvm::cl::init(false));
----------------
simark wrote:
> ilya-biryukov wrote:
> > Maybe just call it `-v`?
> I would have like to add both "-v" and "-verbose", but it doesn't seem possible to have two flags for the same option. "-v" it is then, it is quite standard.
I would go with having just `-v` with no aliases.
But this should do the trick if you prefer to have `-verbose` as an option:
```
llvm::cl::opt<bool> Verbose("v", llvm::cl::alias("verbose") , //....
```
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D44226
More information about the cfe-commits
mailing list