-
-
Notifications
You must be signed in to change notification settings - Fork 765
Closed
Labels
Description
Description
I set Appium's log level to warn so my console output is decluttered. But when I want to debug an issue, I have to set it to info. I'd like to have the best of both worlds without having to rerun my tests. IOW, I'd like the console to only output warning level messages and above and I'd like a file log with verbose logging.
For this reason, I would like the ability to configure Appium's logging. Maybe with a logging properties file?
If I use the builder.withLogFile(File) API, this doesn't suppress logging to the console.
I use log4j2. I've tried using logging bridges (Java util logging, Commons Util, and log4j1), but my logging configuration isn't being picked up.
Environment
- java client build version or git revision if you use some shapshot: 3.4.1
- Appium server version or git revision if you use some shapshot: 1.5.3
- Desktop OS/version used to run Appium if necessary: OS X El Capitan
- Node.js version (unless using Appium.app|exe) or Appium CLI or Appium.app|exe: 6.1.0
- Mobile platform/version under test: N/A
- Real device or emulator/simulator: N/A
Code To Reproduce Issue
Current code:
AppiumServiceBuilder builder = new AppiumServiceBuilder();
// this filters ALL appium logs to warning level
builder.withArgument(GeneralServerFlag.LOG_LEVEL, "warn");
// now a log file will be created that has warning logs AND the console will output warning logs
builder.withLogFile(myLogFile);Desired:
AppiumServiceBuilder builder = new AppiumServiceBuilder();
// console will only output warning and above level logs
builder.withArgument(GeneralServerFlag.LOG_LEVEL, "warn");
// a log file will be created for all info and above level logs
builder.withLogFile(myLogFile, "info");
// this will use the current logging level, either default or the user-set LOG_LEVEL argument
builder.withLogFile(myLogFile);