Building log4net
Log4net provides support for the following targets
TL;DR (Windows):
- install Visual Studio Build Tools (at least VS2019)
- install nodejs (at least v16)
- install dotnet (v8+) and the .NET SDK (current latest)
- in the project folder:
TL;DR (Docker):
- install docker (if you haven't already)
- in logging/log4net run
docker build -t log4net-builder .docker run -it log4net-builder- this will
- install all dependencies in the container
- build src/log4net.sln
- inside the container run
dotnet test /logging-log4net/src/log4net.sln
TL;DR (!Windows):
- install the dotnet SDK - v8 or better
- install Mono (you're going to need it to target certain versions of .NET)
- install nodejs 16+
- in the project folder:
npm iexport DOTNET_CORE=1 npm run build- we force using
dotnet on non-windows targets for now. At some point, this should become automatic
The full story
Options:
- build locally. Suggested environment:
- Pre-requisites:
- Visual Studio 2019 Build Tools
- include desktop targets at least
- include dotnet core targets or download and install the latest dotnet sdk (you will need at least v8)
- Binaries can be built with a Visual Studio or Rider installation
- Binaries, packages and a release zip can be built via commandline
- Ensure that you have a reasonably modern NodeJS installed (at least version 8+)
npm cinpm run build- optionally
npm test to run all tests - optionally
npm run release to generate release artifacts
- build locally (CLI edition)
- install nodejs (at least v16)
npm inpm run build
- build via docker for windows, using the
build-with-docker-for-windows.bat script - build via the vs2019 Windows AppVeyor image. There is an appveyor.yml file included which (should) build if you set up AppVeyer to track your fork. AppVeyer is free for open-source projects. (TODO: should have a link to the official AppVeyor build)
Updating the site
Log4Net uses Maven to build the site. Source artifacts can be found under src/site. Building the site can be accomplished with npm run build-site. You should have maven installed:
- Windows: get it from Scoop
- OSX: get it from Homebrew
- Linux: use your package manager
The site will be generated in target/site, and can be viewed locally. Updates should be pushed to the asf-staging branch of https://github.com/apache/logging-log4net-site
Once the site has been pushed to the asf-staging branch, it can be viewed at http://logging.staged.apache.org/log4net