Apache Felix Log Service Framework Extension Fragment
Copyright 2018 The Apache Software Foundation

This software was developed at the Apache Software Foundation
(http://www.apache.org) and may have dependencies on other
Apache software licensed under Apache License 2.0.

I. Included Third-Party Software

N/A

II. Used Third-Party Software

N/A

III. Overall License Summary
- Apache License 2.0
