- add log4js
- bug fix: handle empty apply script list