Add github action file to build automatically
diff --git a/.github/workflows/log4cxx.yml b/.github/workflows/log4cxx.yml
new file mode 100644
index 0000000..ef0dd8e
--- /dev/null
+++ b/.github/workflows/log4cxx.yml
@@ -0,0 +1,91 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+name: log4cxx
+
+on: push
+
+jobs:
+  job:
+    name: ${{ matrix.os }}-${{ matrix.cxx }}-build-and-test
+    runs-on: ${{ matrix.os }}
+    timeout-minutes: 38
+    strategy:
+      fail-fast: false
+      matrix:
+        name: [ubuntu18-gcc, ubuntu18-clang, osx, windows-2019]
+        include:
+          - name: windows-2019
+            os: windows-2019
+            cxx: cl.exe
+            cc: cl.exe
+          - name: ubuntu18-gcc
+            os: ubuntu-18.04
+            cxx: g++
+            cc: gcc
+          - name: ubuntu18-clang
+            os: ubuntu-18.04
+            cxx: clang++
+            cc: clang
+          - name: osx
+            os: macos-latest
+            cxx: clang++
+            cc: clang
+
+    steps:
+    - uses: actions/checkout@v2
+
+    - uses: lukka/set-shell-env@v1
+      with:
+        CXX: ${{ matrix.cxx }}
+        CC: ${{ matrix.cc }}
+
+    - name: 'Configure Dependencies - Ubuntu'
+      if: matrix.name == 'ubuntu18-gcc' || matrix.name == 'ubuntu18-clang'
+      run: |
+        sudo apt-get install -y libapr1-dev libaprutil1-dev
+        # note: sqlext.h exists on github VM, purge for now as we don't link correctly...
+        sudo apt-get purge unixodbc-dev
+
+    - name: 'Restore Prebuilt Dependencies - Windows'
+      id: restore-vcpkg-cache
+      if: matrix.name == 'windows-2019' || matrix.name == 'windows-2016'
+      uses: actions/cache@v2
+      with:
+        path: ${{ runner.workspace }}/vcpkg
+        key: ${{ runner.os }}-${{ matrix.name }}-cache
+
+    - name: 'Configure Dependencies - Windows'
+      if: matrix.name == 'windows-2019' || matrix.name == 'windows-2016'
+      uses: lukka/run-vcpkg@v2
+      id: runvcpkg
+      with:
+        vcpkgArguments: apr apr-util
+        vcpkgDirectory: ${{ runner.workspace }}/vcpkg/
+        vcpkgGitCommitId: ffa7fd27cfa29f206d1fd2ccfc722cad4aaeef3d
+        vcpkgTriplet: x64-windows
+
+    - name: 'run cmake'
+      uses: lukka/run-cmake@v2
+      with:
+        cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
+        buildDirectory: ${{ runner.workspace }}/build
+        useVcpkgToolchainFile: true
+        cmakeAppendedArgs: '-DLOG4CXX_TEST_PROGRAM_PATH=C:\msys64\usr\bin'
+
+    - name: run unit tests
+      shell: pwsh
+      run: |
+        cd ${{ runner.workspace }}/build
+        ctest -C Debug --output-on-failure -V