You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by gu...@apache.org on 2024/02/08 12:55:49 UTC

(cloudstack) branch main updated: Normalize loggers and upgrade log4j 1.2 to log4j 2.19 (#7131)

This is an automated email from the ASF dual-hosted git repository.

gutoveronezi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new 49cecaed067 Normalize loggers and upgrade log4j 1.2 to log4j 2.19 (#7131)
49cecaed067 is described below

commit 49cecaed067bfcf1bd54f1fca1839a4cf6897769
Author: João Jandre <48...@users.noreply.github.com>
AuthorDate: Thu Feb 8 09:55:41 2024 -0300

    Normalize loggers and upgrade log4j 1.2 to log4j 2.19 (#7131)
    
    * Normalize logs
    
    All classes that could have their loggers inherited from their fathers had their own loggers deleted;
    Most loggers didn't have to be static, so most of them were normalized so that they wouldn't be;
    All loggers are protected now;
    Static logger's name are now 'LOGGER';
    Non-static logger's name are now 'logger';
    New class DbUpgradeAbstractImpl created so that all Upgraders extend it and inherit its logger
    
    * Upgrade log4j
    
    * fix errors caused by the merge
    
    * Refactor cglibThrowableRenderer functionality to log4j2 and upgrade the last configuration files
    
    * fix sonarcloud bug
    
    * Fix errors caused by merge, remove some unused loggers, and rename a variable that was mistakenly renamed on the normalization commit
    
    * Readd snmpTrapAppender, remove TestAppender
    
    * Regenerate changes
    
    * regenerate changes
    
    * refactor last custom appender
    
    * fix systemvm configuration xml
    
    * Regenerate changes
    
    * Regenerate changes
    
    * regenerate changes
    
    * Regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * Fix utils pom
    
    * fix some tests
    
    * regenerate changes
    
    * Fix jar being printed on exception
    
    * fix logging in system VMs, fix commands not having log4j2 classpath.
    
    * regenerate changes
    
    * Fix some unwanted renomeations
    
    * fix end of file
    
    * regenerate changes
    
    * regenerate changes
    
    * fix merge error
    
    * regenerate changes
    
    * fix tests
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * readd reload4j to tungsten as juniper depends on it
    
    * Regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * re-add reload4j dependency to network-contrail, as juniper depends on it
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * fix typo
    
    * regenerate changes
    
    * regenerate changes
    
    * Fix end of files
    
    * regenerate changes
    
    * add logj42 to cloud-utils-SHADED.jar
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * regenerate changes
    
    * Regenerate changes
    
    * Regenerate changes
    
    * Regenerate changes
    
    * regenerate changes
    
    * Regenerate changes
    
    * regenerate changes
    
    * Regenerate changes
    
    * Regenerate changes
    
    * Regenerate changes
    
    * regenerate changes
    
    * Regenerate changes
    
    * Regenerate changes
    
    * fix some tests
    
    * Regenerate changes
    
    * Regenerate changes
    
    * fix test
    
    * Regenerate changes
    
    * Regenerate changes
---
 agent/conf/log4j-cloud.xml.in                      | 145 ++--
 agent/src/main/java/com/cloud/agent/Agent.java     | 191 ++---
 .../src/main/java/com/cloud/agent/AgentShell.java  |  49 +-
 .../cloud/agent/dao/impl/PropertiesStorage.java    |  21 +-
 .../cloud/agent/dhcp/DhcpProtocolParserServer.java |   7 +-
 .../java/com/cloud/agent/mockvm/MockVmMgr.java     |  25 +-
 .../properties/AgentPropertiesFileHandler.java     |  13 +-
 .../consoleproxy/ConsoleProxyResource.java         |  90 ++-
 api/src/main/java/com/cloud/agent/api/Command.java |   4 +
 .../main/java/com/cloud/agent/api/LogLevel.java    |   6 +-
 .../com/cloud/agent/api/storage/OVFHelper.java     |  59 +-
 .../com/cloud/agent/api/storage/OVFParser.java     |   9 +-
 .../java/com/cloud/network/NetworkProfile.java     |   2 -
 .../main/java/com/cloud/storage/DataStoreRole.java |   1 +
 .../java/org/apache/cloudstack/acl/RoleType.java   |   9 +-
 .../cloudstack/api/AbstractGetUploadParamsCmd.java |   2 -
 .../org/apache/cloudstack/api/BaseAsyncCmd.java    |   2 -
 .../java/org/apache/cloudstack/api/BaseCmd.java    |   9 +-
 .../api/BaseListTemplateOrIsoPermissionsCmd.java   |   5 -
 .../cloudstack/api/BaseUpdateTemplateOrIsoCmd.java |   2 -
 .../api/BaseUpdateTemplateOrIsoPermissionsCmd.java |   5 -
 .../command/admin/account/CreateAccountCmd.java    |   2 -
 .../command/admin/account/DeleteAccountCmd.java    |   2 -
 .../command/admin/account/DisableAccountCmd.java   |   2 -
 .../command/admin/account/EnableAccountCmd.java    |   2 -
 .../api/command/admin/account/LockAccountCmd.java  |   2 -
 .../command/admin/account/UpdateAccountCmd.java    |   2 -
 .../admin/address/AcquirePodIpCmdByAdmin.java      |   2 -
 .../admin/address/AssociateIPAddrCmdByAdmin.java   |   2 -
 .../admin/address/ReleasePodIpCmdByAdmin.java      |   2 -
 .../UpdateVMAffinityGroupCmdByAdmin.java           |   2 -
 .../api/command/admin/alert/GenerateAlertCmd.java  |   2 -
 .../command/admin/autoscale/CreateCounterCmd.java  |   2 -
 .../command/admin/autoscale/DeleteCounterCmd.java  |   6 +-
 .../admin/backup/UpdateBackupOfferingCmd.java      |   4 +-
 .../api/command/admin/ca/IssueCertificateCmd.java  |   4 +-
 .../api/command/admin/cluster/AddClusterCmd.java   |   6 +-
 .../command/admin/cluster/DeleteClusterCmd.java    |   2 -
 .../api/command/admin/cluster/ListClustersCmd.java |   2 -
 .../command/admin/cluster/UpdateClusterCmd.java    |   2 -
 .../command/admin/config/ListCfgGroupsByCmd.java   |   2 -
 .../api/command/admin/config/ListCfgsByCmd.java    |   2 -
 .../admin/config/ListDeploymentPlannersCmd.java    |   2 -
 .../config/ListHypervisorCapabilitiesCmd.java      |   2 -
 .../api/command/admin/config/ResetCfgCmd.java      |   2 -
 .../api/command/admin/config/UpdateCfgCmd.java     |   2 -
 .../config/UpdateHypervisorCapabilitiesCmd.java    |   2 -
 .../admin/diagnostics/RunDiagnosticsCmd.java       |   2 -
 .../ListTemplateDirectDownloadCertificatesCmd.java |   2 -
 ...RevokeTemplateDirectDownloadCertificateCmd.java |   2 -
 ...UploadTemplateDirectDownloadCertificateCmd.java |   4 +-
 .../api/command/admin/domain/CreateDomainCmd.java  |   2 -
 .../api/command/admin/domain/DeleteDomainCmd.java  |   2 -
 .../admin/domain/ListDomainChildrenCmd.java        |   2 -
 .../api/command/admin/domain/ListDomainsCmd.java   |   2 -
 .../api/command/admin/domain/UpdateDomainCmd.java  |   2 -
 .../api/command/admin/guest/AddGuestOsCmd.java     |   2 -
 .../command/admin/guest/AddGuestOsMappingCmd.java  |   2 -
 .../admin/guest/GetHypervisorGuestOsNamesCmd.java  |   3 -
 .../command/admin/guest/ListGuestOsMappingCmd.java |   2 -
 .../api/command/admin/guest/RemoveGuestOsCmd.java  |   2 -
 .../admin/guest/RemoveGuestOsMappingCmd.java       |   2 -
 .../api/command/admin/guest/UpdateGuestOsCmd.java  |   2 -
 .../admin/guest/UpdateGuestOsMappingCmd.java       |   2 -
 .../api/command/admin/host/AddHostCmd.java         |   4 +-
 .../command/admin/host/AddSecondaryStorageCmd.java |   4 +-
 .../command/admin/host/CancelMaintenanceCmd.java   |   2 -
 .../api/command/admin/host/DeleteHostCmd.java      |   2 -
 .../admin/host/FindHostsForMigrationCmd.java       |   2 -
 .../api/command/admin/host/ListHostTagsCmd.java    |   2 -
 .../api/command/admin/host/ListHostsCmd.java       |   2 -
 .../admin/host/PrepareForMaintenanceCmd.java       |   2 -
 .../api/command/admin/host/ReconnectHostCmd.java   |   2 -
 .../admin/host/ReleaseHostReservationCmd.java      |   2 -
 .../api/command/admin/host/UpdateHostCmd.java      |   4 +-
 .../command/admin/host/UpdateHostPasswordCmd.java  |   2 -
 .../ConfigureInternalLoadBalancerElementCmd.java   |   2 -
 .../CreateInternalLoadBalancerElementCmd.java      |   2 -
 .../admin/internallb/ListInternalLBVMsCmd.java     |   2 -
 .../ListInternalLoadBalancerElementsCmd.java       |   2 -
 .../admin/internallb/StartInternalLBVMCmd.java     |   2 -
 .../admin/internallb/StopInternalLBVMCmd.java      |   2 -
 .../api/command/admin/management/ListMgmtsCmd.java |   2 -
 .../command/admin/network/AddNetworkDeviceCmd.java |   2 -
 .../network/AddNetworkServiceProviderCmd.java      |   2 -
 .../network/CreateGuestNetworkIpv6PrefixCmd.java   |   2 -
 .../network/CreateManagementNetworkIpRangeCmd.java |   2 -
 .../admin/network/CreateNetworkCmdByAdmin.java     |   2 -
 .../admin/network/CreateNetworkOfferingCmd.java    |   2 -
 .../admin/network/CreatePhysicalNetworkCmd.java    |   2 -
 .../network/CreateStorageNetworkIpRangeCmd.java    |   4 +-
 .../admin/network/DedicateGuestVlanRangeCmd.java   |   2 -
 .../network/DeleteGuestNetworkIpv6PrefixCmd.java   |   2 -
 .../network/DeleteManagementNetworkIpRangeCmd.java |   8 +-
 .../admin/network/DeleteNetworkDeviceCmd.java      |   2 -
 .../admin/network/DeleteNetworkOfferingCmd.java    |   2 -
 .../network/DeleteNetworkServiceProviderCmd.java   |   6 +-
 .../admin/network/DeletePhysicalNetworkCmd.java    |   2 -
 .../network/DeleteStorageNetworkIpRangeCmd.java    |   4 +-
 .../network/ListDedicatedGuestVlanRangesCmd.java   |   2 -
 .../command/admin/network/ListGuestVlansCmd.java   |   2 -
 .../admin/network/ListNetworkDeviceCmd.java        |   2 -
 .../network/ListNetworkServiceProvidersCmd.java    |   2 -
 .../admin/network/ListPhysicalNetworksCmd.java     |   2 -
 .../network/ListStorageNetworkIpRangeCmd.java      |   4 +-
 .../network/ListSupportedNetworkServicesCmd.java   |   2 -
 .../command/admin/network/MigrateNetworkCmd.java   |   2 -
 .../api/command/admin/network/MigrateVPCCmd.java   |   2 -
 .../network/ReleaseDedicatedGuestVlanRangeCmd.java |   2 -
 .../admin/network/UpdateNetworkOfferingCmd.java    |   2 -
 .../network/UpdateNetworkServiceProviderCmd.java   |   2 -
 .../admin/network/UpdatePhysicalNetworkCmd.java    |   2 -
 .../UpdatePodManagementNetworkIpRangeCmd.java      |   6 +-
 .../network/UpdateStorageNetworkIpRangeCmd.java    |   4 +-
 .../admin/offering/CreateDiskOfferingCmd.java      |   2 -
 .../admin/offering/CreateServiceOfferingCmd.java   |   2 -
 .../admin/offering/DeleteDiskOfferingCmd.java      |   2 -
 .../admin/offering/DeleteServiceOfferingCmd.java   |   2 -
 .../admin/offering/UpdateDiskOfferingCmd.java      |   2 -
 .../admin/offering/UpdateServiceOfferingCmd.java   |   2 -
 .../api/command/admin/pod/CreatePodCmd.java        |   2 -
 .../api/command/admin/pod/DeletePodCmd.java        |   2 -
 .../api/command/admin/pod/ListPodsByCmd.java       |   2 -
 .../api/command/admin/pod/UpdatePodCmd.java        |   2 -
 .../api/command/admin/region/AddRegionCmd.java     |   2 -
 .../admin/region/CreatePortableIpRangeCmd.java     |   4 +-
 .../admin/region/DeletePortableIpRangeCmd.java     |   2 -
 .../admin/region/ListPortableIpRangesCmd.java      |   2 -
 .../api/command/admin/region/RemoveRegionCmd.java  |   2 -
 .../api/command/admin/region/UpdateRegionCmd.java  |   2 -
 .../command/admin/resource/ArchiveAlertsCmd.java   |   2 -
 .../admin/resource/CleanVMReservationsCmd.java     |   2 -
 .../command/admin/resource/DeleteAlertsCmd.java    |   2 -
 .../api/command/admin/resource/ListAlertsCmd.java  |   2 -
 .../command/admin/resource/ListCapacityCmd.java    |   2 -
 .../admin/resource/StartRollingMaintenanceCmd.java |   2 -
 .../admin/resource/UploadCustomCertificateCmd.java |   2 -
 .../admin/resource/icon/DeleteResourceIconCmd.java |   2 -
 .../admin/resource/icon/ListResourceIconCmd.java   |   2 -
 .../admin/resource/icon/UploadResourceIconCmd.java |   4 +-
 .../admin/router/ConfigureOvsElementCmd.java       |   3 -
 .../router/ConfigureVirtualRouterElementCmd.java   |   2 -
 .../router/CreateVirtualRouterElementCmd.java      |   2 -
 .../api/command/admin/router/DestroyRouterCmd.java |   2 -
 .../router/GetRouterHealthCheckResultsCmd.java     |   2 -
 .../command/admin/router/ListOvsElementsCmd.java   |   5 +-
 .../api/command/admin/router/ListRoutersCmd.java   |   2 -
 .../admin/router/ListVirtualRouterElementsCmd.java |   2 -
 .../api/command/admin/router/RebootRouterCmd.java  |   2 -
 .../api/command/admin/router/StartRouterCmd.java   |   2 -
 .../api/command/admin/router/StopRouterCmd.java    |   2 -
 .../api/command/admin/router/UpgradeRouterCmd.java |   2 -
 .../admin/router/UpgradeRouterTemplateCmd.java     |   2 -
 .../command/admin/storage/AddImageStoreCmd.java    |   4 +-
 .../command/admin/storage/AddImageStoreS3CMD.java  |   4 +-
 .../admin/storage/AddObjectStoragePoolCmd.java     |   4 +-
 .../CancelPrimaryStorageMaintenanceCmd.java        |   2 -
 .../storage/CreateSecondaryStagingStoreCmd.java    |   4 +-
 .../admin/storage/CreateStoragePoolCmd.java        |   8 +-
 .../command/admin/storage/DeleteImageStoreCmd.java |   2 -
 .../admin/storage/DeleteObjectStoragePoolCmd.java  |   2 -
 .../api/command/admin/storage/DeletePoolCmd.java   |   2 -
 .../storage/DeleteSecondaryStagingStoreCmd.java    |   2 -
 .../storage/FindStoragePoolsForMigrationCmd.java   |   2 -
 .../command/admin/storage/ListImageStoresCmd.java  |   2 -
 .../admin/storage/ListObjectStoragePoolsCmd.java   |   2 -
 .../storage/ListSecondaryStagingStoresCmd.java     |   2 -
 .../command/admin/storage/ListStoragePoolsCmd.java |   2 -
 .../admin/storage/ListStorageProvidersCmd.java     |   2 -
 .../command/admin/storage/ListStorageTagsCmd.java  |   2 -
 .../storage/MigrateSecondaryStorageDataCmd.java    |   2 -
 .../PreparePrimaryStorageForMaintenanceCmd.java    |   2 -
 .../command/admin/storage/SyncStoragePoolCmd.java  |   2 -
 .../storage/UpdateCloudToUseObjectStoreCmd.java    |   4 +-
 .../command/admin/storage/UpdateImageStoreCmd.java |   2 -
 .../storage/UpdateStorageCapabilitiesCmd.java      |   2 -
 .../admin/storage/UpdateStoragePoolCmd.java        |   2 -
 .../api/command/admin/swift/AddSwiftCmd.java       |   4 +-
 .../api/command/admin/swift/ListSwiftsCmd.java     |   2 -
 .../command/admin/systemvm/DestroySystemVmCmd.java |   2 -
 .../command/admin/systemvm/ListSystemVMsCmd.java   |   2 -
 .../command/admin/systemvm/MigrateSystemVMCmd.java |  10 +-
 .../command/admin/systemvm/PatchSystemVMCmd.java   |   2 -
 .../command/admin/systemvm/RebootSystemVmCmd.java  |   2 -
 .../command/admin/systemvm/ScaleSystemVMCmd.java   |  10 +-
 .../command/admin/systemvm/StartSystemVMCmd.java   |   2 -
 .../command/admin/systemvm/StopSystemVmCmd.java    |   2 -
 .../command/admin/systemvm/UpgradeSystemVMCmd.java |   2 -
 .../command/admin/template/PrepareTemplateCmd.java |   2 -
 .../command/admin/usage/AddTrafficMonitorCmd.java  |   2 -
 .../api/command/admin/usage/AddTrafficTypeCmd.java |   2 -
 .../admin/usage/DeleteTrafficMonitorCmd.java       |   2 -
 .../command/admin/usage/DeleteTrafficTypeCmd.java  |   2 -
 .../admin/usage/GenerateUsageRecordsCmd.java       |   2 -
 .../admin/usage/ListTrafficMonitorsCmd.java        |   2 -
 .../usage/ListTrafficTypeImplementorsCmd.java      |   2 -
 .../command/admin/usage/ListTrafficTypesCmd.java   |   2 -
 .../api/command/admin/usage/ListUsageTypesCmd.java |   2 -
 .../admin/usage/RemoveRawUsageRecordsCmd.java      |   2 -
 .../command/admin/usage/UpdateTrafficTypeCmd.java  |   2 -
 .../api/command/admin/user/CreateUserCmd.java      |   2 -
 .../api/command/admin/user/DeleteUserCmd.java      |   2 -
 .../api/command/admin/user/DisableUserCmd.java     |   2 -
 .../api/command/admin/user/EnableUserCmd.java      |   2 -
 .../api/command/admin/user/GetUserCmd.java         |   2 -
 .../api/command/admin/user/GetUserKeysCmd.java     |   2 -
 .../api/command/admin/user/ListUsersCmd.java       |   2 -
 .../api/command/admin/user/LockUserCmd.java        |   2 -
 .../api/command/admin/user/MoveUserCmd.java        |   2 -
 .../api/command/admin/user/RegisterCmd.java        |   2 -
 .../api/command/admin/user/UpdateUserCmd.java      |   2 -
 .../command/admin/vlan/CreateVlanIpRangeCmd.java   |   6 +-
 .../admin/vlan/DedicatePublicIpRangeCmd.java       |   2 -
 .../command/admin/vlan/DeleteVlanIpRangeCmd.java   |   2 -
 .../command/admin/vlan/ListVlanIpRangesCmd.java    |   2 -
 .../admin/vlan/ReleasePublicIpRangeCmd.java        |   2 -
 .../command/admin/vlan/UpdateVlanIpRangeCmd.java   |   4 +-
 .../api/command/admin/vm/AssignVMCmd.java          |   4 +-
 .../api/command/admin/vm/DeployVMCmdByAdmin.java   |   2 -
 .../api/command/admin/vm/ExpungeVMCmd.java         |   2 -
 .../api/command/admin/vm/GetVMUserDataCmd.java     |   2 -
 .../admin/vm/ImportUnmanagedInstanceCmd.java       |  14 +-
 .../api/command/admin/vm/ImportVmCmd.java          |   2 -
 .../admin/vm/ListUnmanagedInstancesCmd.java        |   2 -
 .../api/command/admin/vm/ListVMsCmdByAdmin.java    |   2 -
 .../api/command/admin/vm/ListVmsForImportCmd.java  |   2 -
 .../api/command/admin/vm/MigrateVMCmd.java         |   6 +-
 .../vm/MigrateVirtualMachineWithVolumeCmd.java     |   8 +-
 .../api/command/admin/vm/RecoverVMCmd.java         |   2 -
 .../command/admin/vm/UnmanageVMInstanceCmd.java    |   2 -
 .../admin/volume/DestroyVolumeCmdByAdmin.java      |   2 -
 .../admin/volume/RecoverVolumeCmdByAdmin.java      |   2 -
 .../admin/vpc/CreatePrivateGatewayByAdminCmd.java  |   2 -
 .../command/admin/vpc/CreateVPCOfferingCmd.java    |   6 +-
 .../command/admin/vpc/DeletePrivateGatewayCmd.java |   2 -
 .../command/admin/vpc/DeleteVPCOfferingCmd.java    |   2 -
 .../vpc/ListPrivateGatewaysCmdByAdminCmd.java      |   2 -
 .../command/admin/vpc/UpdateVPCOfferingCmd.java    |   2 -
 .../api/command/admin/zone/CreateZoneCmd.java      |   2 -
 .../api/command/admin/zone/DeleteZoneCmd.java      |   2 -
 .../admin/zone/MarkDefaultZoneForAccountCmd.java   |   2 -
 .../api/command/admin/zone/UpdateZoneCmd.java      |   2 -
 .../user/account/AddAccountToProjectCmd.java       |   2 -
 .../user/account/DeleteAccountFromProjectCmd.java  |   2 -
 .../user/account/DeleteUserFromProjectCmd.java     |   2 -
 .../api/command/user/account/ListAccountsCmd.java  |   2 -
 .../user/account/ListProjectAccountsCmd.java       |   2 -
 .../command/user/address/AssociateIPAddrCmd.java   |   8 +-
 .../user/address/DisassociateIPAddrCmd.java        |   2 -
 .../user/address/ListPublicIpAddressesCmd.java     |   2 -
 .../api/command/user/address/ReleaseIPAddrCmd.java |   2 -
 .../api/command/user/address/ReserveIPAddrCmd.java |   2 -
 .../api/command/user/address/UpdateIPAddrCmd.java  |   2 -
 .../user/affinitygroup/CreateAffinityGroupCmd.java |   2 -
 .../user/affinitygroup/DeleteAffinityGroupCmd.java |   2 -
 .../affinitygroup/ListAffinityGroupTypesCmd.java   |   2 -
 .../user/affinitygroup/ListAffinityGroupsCmd.java  |   2 -
 .../affinitygroup/UpdateVMAffinityGroupCmd.java    |   2 -
 .../user/autoscale/CreateAutoScalePolicyCmd.java   |   2 -
 .../user/autoscale/CreateAutoScaleVmGroupCmd.java  |   4 +-
 .../autoscale/CreateAutoScaleVmProfileCmd.java     |   2 -
 .../command/user/autoscale/CreateConditionCmd.java |   2 -
 .../user/autoscale/DeleteAutoScalePolicyCmd.java   |   4 +-
 .../user/autoscale/DeleteAutoScaleVmGroupCmd.java  |   4 +-
 .../autoscale/DeleteAutoScaleVmProfileCmd.java     |   4 +-
 .../command/user/autoscale/DeleteConditionCmd.java |   6 +-
 .../user/autoscale/DisableAutoScaleVmGroupCmd.java |   2 -
 .../user/autoscale/EnableAutoScaleVmGroupCmd.java  |   2 -
 .../user/autoscale/ListAutoScalePoliciesCmd.java   |   2 -
 .../user/autoscale/ListAutoScaleVmGroupsCmd.java   |   2 -
 .../user/autoscale/ListAutoScaleVmProfilesCmd.java |   2 -
 .../command/user/autoscale/ListConditionsCmd.java  |   2 -
 .../command/user/autoscale/ListCountersCmd.java    |   2 -
 .../user/autoscale/UpdateAutoScalePolicyCmd.java   |   2 -
 .../user/autoscale/UpdateAutoScaleVmGroupCmd.java  |   2 -
 .../autoscale/UpdateAutoScaleVmProfileCmd.java     |   2 -
 .../command/user/autoscale/UpdateConditionCmd.java |   4 +-
 .../api/command/user/bucket/CreateBucketCmd.java   |   2 -
 .../api/command/user/bucket/DeleteBucketCmd.java   |   2 -
 .../api/command/user/bucket/ListBucketsCmd.java    |   2 -
 .../api/command/user/bucket/UpdateBucketCmd.java   |   2 -
 .../command/user/config/ListCapabilitiesCmd.java   |   2 -
 .../consoleproxy/CreateConsoleEndpointCmd.java     |   2 -
 .../api/command/user/event/ArchiveEventsCmd.java   |   2 -
 .../api/command/user/event/DeleteEventsCmd.java    |   2 -
 .../api/command/user/event/ListEventTypesCmd.java  |   2 -
 .../api/command/user/event/ListEventsCmd.java      |   2 -
 .../user/firewall/CreateEgressFirewallRuleCmd.java |   8 +-
 .../user/firewall/CreateFirewallRuleCmd.java       |   4 +-
 .../user/firewall/CreatePortForwardingRuleCmd.java |   4 +-
 .../user/firewall/DeleteEgressFirewallRuleCmd.java |   2 -
 .../user/firewall/DeleteFirewallRuleCmd.java       |   2 -
 .../user/firewall/DeletePortForwardingRuleCmd.java |   2 -
 .../user/firewall/ListEgressFirewallRulesCmd.java  |   2 -
 .../user/firewall/ListFirewallRulesCmd.java        |   2 -
 .../user/firewall/ListPortForwardingRulesCmd.java  |   2 -
 .../user/firewall/UpdateEgressFirewallRuleCmd.java |   2 -
 .../user/firewall/UpdateFirewallRuleCmd.java       |   2 -
 .../user/firewall/UpdatePortForwardingRuleCmd.java |   2 -
 .../user/guest/ListGuestOsCategoriesCmd.java       |   2 -
 .../api/command/user/guest/ListGuestOsCmd.java     |   2 -
 .../user/ipv6/CreateIpv6FirewallRuleCmd.java       |   4 +-
 .../user/ipv6/DeleteIpv6FirewallRuleCmd.java       |   2 -
 .../user/ipv6/ListIpv6FirewallRulesCmd.java        |   2 -
 .../user/ipv6/UpdateIpv6FirewallRuleCmd.java       |   2 -
 .../api/command/user/iso/AttachIsoCmd.java         |   2 -
 .../api/command/user/iso/CopyIsoCmd.java           |   2 -
 .../api/command/user/iso/DeleteIsoCmd.java         |   2 -
 .../api/command/user/iso/DetachIsoCmd.java         |   2 -
 .../api/command/user/iso/ExtractIsoCmd.java        |   4 +-
 .../command/user/iso/GetUploadParamsForIsoCmd.java |   2 +-
 .../command/user/iso/ListIsoPermissionsCmd.java    |   5 -
 .../api/command/user/iso/ListIsosCmd.java          |   2 -
 .../api/command/user/iso/RegisterIsoCmd.java       |   2 -
 .../api/command/user/iso/UpdateIsoCmd.java         |   2 -
 .../command/user/iso/UpdateIsoPermissionsCmd.java  |   5 -
 .../command/user/job/QueryAsyncJobResultCmd.java   |   2 -
 .../loadbalancer/AssignCertToLoadBalancerCmd.java  |   2 -
 .../loadbalancer/AssignToLoadBalancerRuleCmd.java  |   2 -
 .../CreateApplicationLoadBalancerCmd.java          |  10 +-
 .../loadbalancer/CreateLBHealthCheckPolicyCmd.java |   4 +-
 .../loadbalancer/CreateLBStickinessPolicyCmd.java  |   4 +-
 .../loadbalancer/CreateLoadBalancerRuleCmd.java    |   8 +-
 .../DeleteApplicationLoadBalancerCmd.java          |   2 -
 .../loadbalancer/DeleteLBHealthCheckPolicyCmd.java |   2 -
 .../loadbalancer/DeleteLBStickinessPolicyCmd.java  |   2 -
 .../loadbalancer/DeleteLoadBalancerRuleCmd.java    |   2 -
 .../user/loadbalancer/DeleteSslCertCmd.java        |   2 -
 .../ListApplicationLoadBalancersCmd.java           |   2 -
 .../loadbalancer/ListLBHealthCheckPoliciesCmd.java |   2 -
 .../loadbalancer/ListLBStickinessPoliciesCmd.java  |   2 -
 .../ListLoadBalancerRuleInstancesCmd.java          |   6 +-
 .../loadbalancer/ListLoadBalancerRulesCmd.java     |   2 -
 .../command/user/loadbalancer/ListSslCertsCmd.java |   2 -
 .../RemoveCertFromLoadBalancerCmd.java             |   2 -
 .../RemoveFromLoadBalancerRuleCmd.java             |   2 -
 .../UpdateApplicationLoadBalancerCmd.java          |   2 -
 .../loadbalancer/UpdateLBHealthCheckPolicyCmd.java |   2 -
 .../loadbalancer/UpdateLBStickinessPolicyCmd.java  |   2 -
 .../loadbalancer/UpdateLoadBalancerRuleCmd.java    |   2 -
 .../user/loadbalancer/UploadSslCertCmd.java        |   2 -
 .../user/nat/CreateIpForwardingRuleCmd.java        |   4 +-
 .../user/nat/DeleteIpForwardingRuleCmd.java        |   2 -
 .../api/command/user/nat/DisableStaticNatCmd.java  |   2 -
 .../api/command/user/nat/EnableStaticNatCmd.java   |   6 +-
 .../command/user/nat/ListIpForwardingRulesCmd.java |   2 -
 .../command/user/network/CreateNetworkACLCmd.java  |   2 -
 .../user/network/CreateNetworkACLListCmd.java      |   4 +-
 .../api/command/user/network/CreateNetworkCmd.java |   2 -
 .../user/network/CreateNetworkPermissionsCmd.java  |   2 -
 .../command/user/network/DeleteNetworkACLCmd.java  |   2 -
 .../user/network/DeleteNetworkACLListCmd.java      |   2 -
 .../api/command/user/network/DeleteNetworkCmd.java |   2 -
 .../user/network/ListNetworkACLListsCmd.java       |   2 -
 .../command/user/network/ListNetworkACLsCmd.java   |   2 -
 .../user/network/ListNetworkOfferingsCmd.java      |   2 -
 .../user/network/ListNetworkPermissionsCmd.java    |   2 -
 .../user/network/ListNetworkProtocolsCmd.java      |   2 -
 .../api/command/user/network/ListNetworksCmd.java  |   2 -
 .../user/network/MoveNetworkAclItemCmd.java        |   2 -
 .../user/network/RemoveNetworkPermissionsCmd.java  |   2 -
 .../user/network/ReplaceNetworkACLListCmd.java     |   2 -
 .../user/network/ResetNetworkPermissionsCmd.java   |   2 -
 .../command/user/network/RestartNetworkCmd.java    |   2 -
 .../user/network/UpdateNetworkACLItemCmd.java      |   2 -
 .../user/network/UpdateNetworkACLListCmd.java      |   2 -
 .../api/command/user/network/UpdateNetworkCmd.java |   2 -
 .../user/offering/ListDiskOfferingsCmd.java        |   2 -
 .../user/offering/ListServiceOfferingsCmd.java     |   3 -
 .../command/user/project/ActivateProjectCmd.java   |   2 -
 .../api/command/user/project/CreateProjectCmd.java |   2 -
 .../api/command/user/project/DeleteProjectCmd.java |   2 -
 .../user/project/DeleteProjectInvitationCmd.java   |   2 -
 .../user/project/ListProjectInvitationsCmd.java    |   2 -
 .../api/command/user/project/ListProjectsCmd.java  |   2 -
 .../command/user/project/SuspendProjectCmd.java    |   2 -
 .../api/command/user/project/UpdateProjectCmd.java |   2 -
 .../user/project/UpdateProjectInvitationCmd.java   |   2 -
 .../api/command/user/region/ListRegionsCmd.java    |   2 -
 .../ha/gslb/AssignToGlobalLoadBalancerRuleCmd.java |   2 -
 .../ha/gslb/CreateGlobalLoadBalancerRuleCmd.java   |   4 +-
 .../ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java   |   2 -
 .../ha/gslb/ListGlobalLoadBalancerRuleCmd.java     |   2 -
 .../gslb/RemoveFromGlobalLoadBalancerRuleCmd.java  |   2 -
 .../ha/gslb/UpdateGlobalLoadBalancerRuleCmd.java   |   2 -
 .../user/resource/GetCloudIdentifierCmd.java       |   2 -
 .../command/user/resource/ListHypervisorsCmd.java  |   2 -
 .../user/resource/ListResourceLimitsCmd.java       |   2 -
 .../user/resource/UpdateResourceCountCmd.java      |   2 -
 .../user/resource/UpdateResourceLimitCmd.java      |   2 -
 .../AuthorizeSecurityGroupEgressCmd.java           |   2 -
 .../AuthorizeSecurityGroupIngressCmd.java          |   2 -
 .../user/securitygroup/CreateSecurityGroupCmd.java |   2 -
 .../user/securitygroup/DeleteSecurityGroupCmd.java |   4 +-
 .../user/securitygroup/ListSecurityGroupsCmd.java  |   2 -
 .../RevokeSecurityGroupEgressCmd.java              |   2 -
 .../RevokeSecurityGroupIngressCmd.java             |   2 -
 .../user/securitygroup/UpdateSecurityGroupCmd.java |   2 -
 .../command/user/snapshot/ArchiveSnapshotCmd.java  |   2 -
 .../api/command/user/snapshot/CopySnapshotCmd.java |   9 +-
 .../command/user/snapshot/CreateSnapshotCmd.java   |   6 +-
 .../snapshot/CreateSnapshotFromVMSnapshotCmd.java  |   8 +-
 .../user/snapshot/CreateSnapshotPolicyCmd.java     |   2 -
 .../command/user/snapshot/DeleteSnapshotCmd.java   |   2 -
 .../user/snapshot/DeleteSnapshotPoliciesCmd.java   |   2 -
 .../user/snapshot/ListSnapshotPoliciesCmd.java     |   2 -
 .../command/user/snapshot/ListSnapshotsCmd.java    |   2 -
 .../command/user/snapshot/RevertSnapshotCmd.java   |   2 -
 .../user/snapshot/UpdateSnapshotPolicyCmd.java     |   2 -
 .../api/command/user/ssh/CreateSSHKeyPairCmd.java  |   2 -
 .../api/command/user/ssh/DeleteSSHKeyPairCmd.java  |   2 -
 .../api/command/user/ssh/ListSSHKeyPairsCmd.java   |   2 -
 .../command/user/ssh/RegisterSSHKeyPairCmd.java    |   2 -
 .../api/command/user/tag/CreateTagsCmd.java        |   2 -
 .../api/command/user/tag/DeleteTagsCmd.java        |   2 -
 .../api/command/user/template/CopyTemplateCmd.java |   4 +-
 .../command/user/template/CreateTemplateCmd.java   |   8 +-
 .../command/user/template/DeleteTemplateCmd.java   |   2 -
 .../command/user/template/ExtractTemplateCmd.java  |   4 +-
 .../template/GetUploadParamsForTemplateCmd.java    |   4 +-
 .../user/template/ListTemplatePermissionsCmd.java  |   6 -
 .../command/user/template/ListTemplatesCmd.java    |   2 -
 .../command/user/template/RegisterTemplateCmd.java |   4 +-
 .../command/user/template/UpdateTemplateCmd.java   |   2 -
 .../template/UpdateTemplatePermissionsCmd.java     |   5 -
 .../command/user/userdata/DeleteUserDataCmd.java   |   2 -
 .../user/userdata/LinkUserDataToTemplateCmd.java   |   2 -
 .../api/command/user/userdata/ListUserDataCmd.java |   2 -
 .../command/user/userdata/RegisterUserDataCmd.java |   2 -
 .../api/command/user/vm/AddIpToVmNicCmd.java       |   2 -
 .../api/command/user/vm/AddNicToVMCmd.java         |   2 -
 .../api/command/user/vm/DeployVMCmd.java           |  36 +-
 .../api/command/user/vm/DestroyVMCmd.java          |   2 -
 .../api/command/user/vm/GetVMPasswordCmd.java      |   2 -
 .../api/command/user/vm/ListNicsCmd.java           |   4 +-
 .../cloudstack/api/command/user/vm/ListVMsCmd.java |   2 -
 .../api/command/user/vm/RebootVMCmd.java           |   2 -
 .../api/command/user/vm/RemoveIpFromVmNicCmd.java  |   2 -
 .../api/command/user/vm/RemoveNicFromVMCmd.java    |   2 -
 .../api/command/user/vm/ResetVMPasswordCmd.java    |   6 +-
 .../api/command/user/vm/ResetVMSSHKeyCmd.java      |   2 -
 .../api/command/user/vm/ResetVMUserDataCmd.java    |   2 -
 .../api/command/user/vm/RestoreVMCmd.java          |   2 -
 .../cloudstack/api/command/user/vm/ScaleVMCmd.java |  10 +-
 .../cloudstack/api/command/user/vm/StartVMCmd.java |  16 +-
 .../cloudstack/api/command/user/vm/StopVMCmd.java  |   2 -
 .../command/user/vm/UpdateDefaultNicForVMCmd.java  |   2 -
 .../api/command/user/vm/UpdateVMCmd.java           |   2 -
 .../api/command/user/vm/UpdateVmNicIpCmd.java      |   2 -
 .../api/command/user/vm/UpgradeVMCmd.java          |   2 -
 .../api/command/user/vmgroup/CreateVMGroupCmd.java |   2 -
 .../api/command/user/vmgroup/DeleteVMGroupCmd.java |   2 -
 .../api/command/user/vmgroup/ListVMGroupsCmd.java  |   2 -
 .../api/command/user/vmgroup/UpdateVMGroupCmd.java |   2 -
 .../user/vmsnapshot/CreateVMSnapshotCmd.java       |   2 -
 .../user/vmsnapshot/DeleteVMSnapshotCmd.java       |   2 -
 .../user/vmsnapshot/RevertToVMSnapshotCmd.java     |   2 -
 .../command/user/volume/AddResourceDetailCmd.java  |   2 -
 .../api/command/user/volume/AssignVolumeCmd.java   |   4 +-
 .../api/command/user/volume/AttachVolumeCmd.java   |   2 -
 .../api/command/user/volume/CreateVolumeCmd.java   |   2 -
 .../api/command/user/volume/DeleteVolumeCmd.java   |   2 -
 .../api/command/user/volume/DestroyVolumeCmd.java  |   2 -
 .../api/command/user/volume/DetachVolumeCmd.java   |   2 -
 .../api/command/user/volume/ExtractVolumeCmd.java  |   2 -
 .../user/volume/GetUploadParamsForVolumeCmd.java   |   4 +-
 .../api/command/user/volume/ListVolumesCmd.java    |   2 -
 .../api/command/user/volume/RecoverVolumeCmd.java  |   2 -
 .../user/volume/RemoveResourceDetailCmd.java       |   2 -
 .../api/command/user/volume/ResizeVolumeCmd.java   |   6 +-
 .../api/command/user/volume/UpdateVolumeCmd.java   |   2 -
 .../api/command/user/volume/UploadVolumeCmd.java   |   2 -
 .../command/user/vpc/CreatePrivateGatewayCmd.java  |   8 +-
 .../api/command/user/vpc/CreateStaticRouteCmd.java |   6 +-
 .../api/command/user/vpc/CreateVPCCmd.java         |  12 +-
 .../api/command/user/vpc/DeleteStaticRouteCmd.java |   2 -
 .../api/command/user/vpc/DeleteVPCCmd.java         |   6 +-
 .../command/user/vpc/ListPrivateGatewaysCmd.java   |   2 -
 .../api/command/user/vpc/ListVPCOfferingsCmd.java  |   2 -
 .../api/command/user/vpc/ListVPCsCmd.java          |   2 -
 .../api/command/user/vpc/RestartVPCCmd.java        |  10 +-
 .../api/command/user/vpc/UpdateVPCCmd.java         |   8 +-
 .../api/command/user/vpn/AddVpnUserCmd.java        |   2 -
 .../command/user/vpn/CreateRemoteAccessVpnCmd.java |   8 +-
 .../command/user/vpn/CreateVpnConnectionCmd.java   |   8 +-
 .../user/vpn/CreateVpnCustomerGatewayCmd.java      |   2 -
 .../api/command/user/vpn/CreateVpnGatewayCmd.java  |   2 -
 .../command/user/vpn/DeleteRemoteAccessVpnCmd.java |   2 -
 .../command/user/vpn/DeleteVpnConnectionCmd.java   |   4 +-
 .../user/vpn/DeleteVpnCustomerGatewayCmd.java      |   2 -
 .../api/command/user/vpn/DeleteVpnGatewayCmd.java  |   2 -
 .../command/user/vpn/ListRemoteAccessVpnsCmd.java  |   2 -
 .../command/user/vpn/ListVpnConnectionsCmd.java    |   2 -
 .../user/vpn/ListVpnCustomerGatewaysCmd.java       |   2 -
 .../api/command/user/vpn/ListVpnGatewaysCmd.java   |   2 -
 .../api/command/user/vpn/ListVpnUsersCmd.java      |   2 -
 .../api/command/user/vpn/RemoveVpnUserCmd.java     |   8 +-
 .../command/user/vpn/ResetVpnConnectionCmd.java    |   4 +-
 .../command/user/vpn/UpdateRemoteAccessVpnCmd.java |   2 -
 .../command/user/vpn/UpdateVpnConnectionCmd.java   |   2 -
 .../user/vpn/UpdateVpnCustomerGatewayCmd.java      |   2 -
 .../api/command/user/vpn/UpdateVpnGatewayCmd.java  |   2 -
 .../api/command/user/zone/ListZonesCmd.java        |   2 -
 .../consoleproxy/ConsoleAccessManager.java         |   4 +
 .../org/apache/cloudstack/context/CallContext.java |  25 +-
 .../org/apache/cloudstack/context/LogContext.java  |  21 +-
 .../admin/account/CreateAccountCmdTest.java        |   5 +-
 .../admin/storage/AddObjectStoragePoolCmdTest.java |   2 -
 .../storage/DeleteObjectStoragePoolCmdTest.java    |   2 -
 .../storage/UpdateObjectStoragePoolCmdTest.java    |   2 -
 .../api/command/admin/user/CreateUserCmdTest.java  |   5 +-
 client/conf/log4j-cloud.xml.in                     | 295 +++-----
 client/pom.xml                                     |   2 +-
 .../java/org/apache/cloudstack/ServerDaemon.java   |  17 +-
 client/src/main/webapp/WEB-INF/web.xml             |   2 +-
 .../com/cloud/agent/api/SecurityGroupRulesCmd.java |   4 +-
 .../virtualnetwork/VirtualRoutingResource.java     |  73 +-
 .../facade/AbstractConfigItemFacade.java           |   9 +-
 .../facade/SetMonitorServiceConfigItem.java        |   6 +-
 .../facade/SetNetworkAclConfigItem.java            |   4 +-
 .../agent/transport/LoggingExclusionStrategy.java  |  17 +-
 .../java/com/cloud/agent/transport/Request.java    |  31 +-
 .../com/cloud/network/HAProxyConfigurator.java     |  23 +-
 .../network/resource/TrafficSentinelResource.java  |  11 +-
 .../java/com/cloud/resource/CommandWrapper.java    |   5 +-
 .../java/com/cloud/resource/RequestWrapper.java    |   9 +-
 .../com/cloud/resource/ServerResourceBase.java     |  39 +-
 .../main/java/com/cloud/serializer/GsonHelper.java |  17 +-
 .../java/com/cloud/storage/JavaStorageLayer.java   |   9 +-
 .../StorageSubsystemCommandHandlerBase.java        |  11 +-
 .../storage/template/FtpTemplateUploader.java      |  15 +-
 .../storage/template/HttpTemplateDownloader.java   |  26 +-
 .../com/cloud/storage/template/IsoProcessor.java   |   6 +-
 .../storage/template/LocalTemplateDownloader.java  |  18 +-
 .../template/MetalinkTemplateDownloader.java       |  14 +-
 .../com/cloud/storage/template/OVAProcessor.java   |  64 +-
 .../com/cloud/storage/template/QCOW2Processor.java |  10 +-
 .../cloud/storage/template/RawImageProcessor.java  |   8 +-
 .../storage/template/S3TemplateDownloader.java     |  26 +-
 .../storage/template/ScpTemplateDownloader.java    |   8 +-
 .../template/SimpleHttpMultiFileDownloader.java    |  20 +-
 .../com/cloud/storage/template/TARProcessor.java   |   6 +-
 .../storage/template/TemplateDownloaderBase.java   |   4 +-
 .../cloud/storage/template/TemplateLocation.java   |  41 +-
 .../com/cloud/storage/template/VhdProcessor.java   |  18 +-
 .../com/cloud/storage/template/VmdkProcessor.java  |  20 +-
 .../cloudstack/diagnostics/DiagnosticsAnswer.java  |   2 -
 .../direct/download/DirectDownloadHelper.java      |   5 +-
 .../download/DirectTemplateDownloaderImpl.java     |  17 +-
 .../download/HttpDirectTemplateDownloader.java     |  18 +-
 .../download/HttpsDirectTemplateDownloader.java    |  18 +-
 .../download/MetalinkDirectTemplateDownloader.java |  19 +-
 .../download/NfsDirectTemplateDownloader.java      |   2 +-
 .../transport/LoggingExclusionStrategyTest.java    |  83 +++
 .../com/cloud/agent/transport/RequestTest.java     |  91 +--
 debian/cloudstack-management.postinst              |   2 +-
 .../main/java/com/cloud/event/UsageEventUtils.java |   7 +-
 .../com/cloud/network/NetworkStateListener.java    |   7 +-
 .../main/java/com/cloud/storage/StorageUtil.java   |   2 +-
 .../src/main/java/com/cloud/vm/VmWork.java         |   4 +
 .../java/com/cloud/vm/VmWorkJobHandlerProxy.java   |  19 +-
 .../java/com/cloud/agent/manager/AgentAttache.java |  75 +-
 .../com/cloud/agent/manager/AgentManagerImpl.java  | 288 ++++----
 .../cloud/agent/manager/ClusteredAgentAttache.java |  42 +-
 .../agent/manager/ClusteredAgentManagerImpl.java   | 332 +++++----
 .../cloud/agent/manager/ConnectedAgentAttache.java |   6 +-
 .../cloud/agent/manager/DirectAgentAttache.java    |  78 +-
 .../cloud/agent/manager/SynchronousListener.java   |  13 +-
 .../ClusterBasedAgentLoadBalancerPlanner.java      |  16 +-
 .../com/cloud/vm/VirtualMachineManagerImpl.java    | 672 +++++++++--------
 .../cloud/vm/VirtualMachinePowerStateSyncImpl.java |  63 +-
 .../java/com/cloud/vm/VmWorkJobDispatcher.java     |  22 +-
 .../com/cloud/vm/VmWorkJobWakeupDispatcher.java    |  14 +-
 .../src/main/java/com/cloud/vm/VmWorkStart.java    |   4 +-
 .../cloud/entity/api/VMEntityManagerImpl.java      |   9 +-
 .../entity/api/db/dao/EngineClusterDaoImpl.java    |   6 +-
 .../entity/api/db/dao/EngineDataCenterDaoImpl.java |   8 +-
 .../entity/api/db/dao/EngineHostDaoImpl.java       |   6 +-
 .../entity/api/db/dao/EngineHostPodDaoImpl.java    |   8 +-
 .../engine/orchestration/DataMigrationUtility.java |  11 +-
 .../engine/orchestration/NetworkOrchestrator.java  | 440 ++++++-----
 .../engine/orchestration/StorageOrchestrator.java  |  22 +-
 .../engine/orchestration/VolumeOrchestrator.java   | 208 +++---
 .../orchestration/NetworkOrchestratorTest.java     |   2 -
 .../com/cloud/capacity/dao/CapacityDaoImpl.java    |   8 +-
 .../cloud/certificate/dao/CertificateDaoImpl.java  |   4 +-
 .../agentlb/dao/HostTransferMapDaoImpl.java        |   2 -
 .../java/com/cloud/dc/dao/DataCenterDaoImpl.java   |   4 +-
 .../cloud/dc/dao/DataCenterIpAddressDaoImpl.java   |  18 +-
 .../dao/DataCenterLinkLocalIpAddressDaoImpl.java   |   6 +-
 .../main/java/com/cloud/dc/dao/HostPodDaoImpl.java |   4 +-
 .../cloud/dc/dao/VsphereStoragePolicyDaoImpl.java  |   2 -
 .../src/main/java/com/cloud/domain/DomainVO.java   |   5 +-
 .../java/com/cloud/domain/dao/DomainDaoImpl.java   |  22 +-
 .../java/com/cloud/event/dao/EventDaoImpl.java     |   2 -
 .../com/cloud/event/dao/UsageEventDaoImpl.java     |  20 +-
 .../cloud/event/dao/UsageEventDetailsDaoImpl.java  |   2 -
 .../com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java    |   2 -
 .../java/com/cloud/gpu/dao/VGPUTypesDaoImpl.java   |   2 -
 .../main/java/com/cloud/host/dao/HostDaoImpl.java  |  67 +-
 .../dao/HypervisorCapabilitiesDaoImpl.java         |   6 +-
 .../vmware/dao/VmwareDatacenterDaoImpl.java        |   3 +-
 .../network/dao/FirewallRulesCidrsDaoImpl.java     |   2 -
 .../com/cloud/network/dao/IPAddressDaoImpl.java    |   4 +-
 .../cloud/network/dao/NetworkDomainDaoImpl.java    |   2 -
 .../main/java/com/cloud/network/dao/NetworkVO.java |   2 -
 .../com/cloud/network/dao/PortProfileDaoImpl.java  |   2 -
 .../cloud/network/dao/RemoteAccessVpnDaoImpl.java  |   2 -
 .../dao/RouterHealthCheckResultDaoImpl.java        |   4 +-
 .../network/dao/Site2SiteVpnConnectionDaoImpl.java |   2 -
 .../network/dao/Site2SiteVpnGatewayDaoImpl.java    |   2 -
 .../cloud/network/dao/UserIpv6AddressDaoImpl.java  |   2 -
 .../security/dao/SecurityGroupWorkDaoImpl.java     |  10 +-
 .../network/security/dao/VmRulesetLogDaoImpl.java  |  26 +-
 .../vpc/dao/NetworkACLItemCidrsDaoImpl.java        |   2 -
 .../cloud/network/vpc/dao/PrivateIpDaoImpl.java    |   6 +-
 .../cloud/projects/dao/ProjectAccountDaoImpl.java  |   4 +-
 .../com/cloud/projects/dao/ProjectDaoImpl.java     |   2 -
 .../projects/dao/ProjectInvitationDaoImpl.java     |   8 +-
 .../resource/icon/dao/ResourceIconDaoImpl.java     |   2 -
 .../cloud/service/dao/ServiceOfferingDaoImpl.java  |   4 +-
 .../java/com/cloud/storage/dao/BucketDaoImpl.java  |   2 -
 .../storage/dao/GuestOSHypervisorDaoImpl.java      |  10 +-
 .../cloud/storage/dao/LaunchPermissionDaoImpl.java |   6 +-
 .../com/cloud/storage/dao/SnapshotDaoImpl.java     |   4 +-
 .../com/cloud/storage/dao/SnapshotZoneDaoImpl.java |   2 -
 .../cloud/storage/dao/StoragePoolHostDaoImpl.java  |  12 +-
 .../java/com/cloud/storage/dao/UploadDaoImpl.java  |   2 -
 .../com/cloud/storage/dao/VMTemplateDaoImpl.java   |  12 +-
 .../cloud/storage/dao/VMTemplatePoolDaoImpl.java   |  16 +-
 .../cloud/storage/dao/VMTemplateZoneDaoImpl.java   |   2 -
 .../java/com/cloud/storage/dao/VolumeDaoImpl.java  |  16 +-
 .../upgrade/ConfigurationGroupsAggregator.java     |   5 +-
 .../cloud/upgrade/DatabaseIntegrityChecker.java    |  42 +-
 .../com/cloud/upgrade/DatabaseUpgradeChecker.java  |  53 +-
 .../main/java/com/cloud/upgrade/GuestOsMapper.java |  49 +-
 .../com/cloud/upgrade/RolePermissionChecker.java   |   9 +-
 .../upgrade/SystemVmTemplateRegistration.java      |   5 +-
 .../cloud/upgrade/dao/DatabaseAccessObject.java    |  35 +-
 ...ade444to450.java => DbUpgradeAbstractImpl.java} |  10 +-
 .../com/cloud/upgrade/dao/LegacyDbUpgrade.java     |   6 +-
 .../com/cloud/upgrade/dao/Upgrade217to218.java     |   2 +-
 .../java/com/cloud/upgrade/dao/Upgrade218to22.java | 132 ++--
 .../upgrade/dao/Upgrade218to224DomainVlans.java    |  12 +-
 .../cloud/upgrade/dao/Upgrade218to22Premium.java   |   6 +-
 .../com/cloud/upgrade/dao/Upgrade2210to2211.java   |   2 +-
 .../com/cloud/upgrade/dao/Upgrade2211to2212.java   |  10 +-
 .../upgrade/dao/Upgrade2211to2212Premium.java      |   2 -
 .../com/cloud/upgrade/dao/Upgrade2212to2213.java   |   8 +-
 .../com/cloud/upgrade/dao/Upgrade2213to2214.java   |   4 +-
 .../com/cloud/upgrade/dao/Upgrade2214to30.java     |  96 ++-
 .../com/cloud/upgrade/dao/Upgrade221to222.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade222to224.java     |  46 +-
 .../cloud/upgrade/dao/Upgrade222to224Premium.java  |   6 +-
 .../com/cloud/upgrade/dao/Upgrade224to225.java     |  24 +-
 .../com/cloud/upgrade/dao/Upgrade225to226.java     |   8 +-
 .../com/cloud/upgrade/dao/Upgrade227to228.java     |  20 +-
 .../cloud/upgrade/dao/Upgrade227to228Premium.java  |  16 +-
 .../com/cloud/upgrade/dao/Upgrade228to229.java     |   6 +-
 .../com/cloud/upgrade/dao/Upgrade229to2210.java    |  12 +-
 .../com/cloud/upgrade/dao/Upgrade301to302.java     |  14 +-
 .../com/cloud/upgrade/dao/Upgrade302to303.java     |  14 +-
 .../java/com/cloud/upgrade/dao/Upgrade302to40.java |  64 +-
 .../com/cloud/upgrade/dao/Upgrade303to304.java     |  22 +-
 .../com/cloud/upgrade/dao/Upgrade304to305.java     |  42 +-
 .../com/cloud/upgrade/dao/Upgrade305to306.java     |  26 +-
 .../com/cloud/upgrade/dao/Upgrade306to307.java     |   4 +-
 .../com/cloud/upgrade/dao/Upgrade307to410.java     |   6 +-
 .../java/com/cloud/upgrade/dao/Upgrade30to301.java |   4 +-
 .../java/com/cloud/upgrade/dao/Upgrade30xBase.java |  14 +-
 .../java/com/cloud/upgrade/dao/Upgrade40to41.java  |  16 +-
 .../com/cloud/upgrade/dao/Upgrade41000to41100.java |  24 +-
 .../com/cloud/upgrade/dao/Upgrade410to420.java     | 252 ++++---
 .../com/cloud/upgrade/dao/Upgrade41100to41110.java |  16 +-
 .../com/cloud/upgrade/dao/Upgrade41110to41120.java |   4 +-
 .../com/cloud/upgrade/dao/Upgrade41120to41130.java |   2 +-
 .../com/cloud/upgrade/dao/Upgrade41120to41200.java |   6 +-
 .../com/cloud/upgrade/dao/Upgrade41200to41300.java |   2 +-
 .../com/cloud/upgrade/dao/Upgrade41300to41310.java |   2 +-
 .../com/cloud/upgrade/dao/Upgrade41310to41400.java |   4 +-
 .../com/cloud/upgrade/dao/Upgrade41400to41500.java |  29 +-
 .../com/cloud/upgrade/dao/Upgrade41500to41510.java |  29 +-
 .../com/cloud/upgrade/dao/Upgrade41510to41520.java |   5 +-
 .../com/cloud/upgrade/dao/Upgrade41520to41600.java |  20 +-
 .../com/cloud/upgrade/dao/Upgrade41600to41610.java |   6 +-
 .../com/cloud/upgrade/dao/Upgrade41610to41700.java |  10 +-
 .../com/cloud/upgrade/dao/Upgrade41700to41710.java |   6 +-
 .../com/cloud/upgrade/dao/Upgrade41710to41720.java |   6 +-
 .../com/cloud/upgrade/dao/Upgrade41720to41800.java |  34 +-
 .../com/cloud/upgrade/dao/Upgrade41800to41810.java |  20 +-
 .../com/cloud/upgrade/dao/Upgrade41810to41900.java |  34 +-
 .../com/cloud/upgrade/dao/Upgrade41900to42000.java |   7 +-
 .../com/cloud/upgrade/dao/Upgrade420to421.java     |  12 +-
 .../com/cloud/upgrade/dao/Upgrade421to430.java     |  10 +-
 .../com/cloud/upgrade/dao/Upgrade430to440.java     |  16 +-
 .../com/cloud/upgrade/dao/Upgrade431to440.java     |   4 +-
 .../com/cloud/upgrade/dao/Upgrade432to440.java     |   4 +-
 .../com/cloud/upgrade/dao/Upgrade440to441.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade441to442.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade442to450.java     |  14 +-
 .../com/cloud/upgrade/dao/Upgrade443to444.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade443to450.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade444to450.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade450to451.java     |  16 +-
 .../com/cloud/upgrade/dao/Upgrade451to452.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade452to453.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade452to460.java     |  12 +-
 .../com/cloud/upgrade/dao/Upgrade453to460.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade460to461.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade461to470.java     |   8 +-
 .../com/cloud/upgrade/dao/Upgrade470to471.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade471to480.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade480to481.java     |   2 +-
 .../com/cloud/upgrade/dao/Upgrade481to490.java     |  20 +-
 .../com/cloud/upgrade/dao/Upgrade490to4910.java    |   2 +-
 .../com/cloud/upgrade/dao/Upgrade4910to4920.java   |   2 +-
 .../com/cloud/upgrade/dao/Upgrade4920to4930.java   |   2 +-
 .../com/cloud/upgrade/dao/Upgrade4930to41000.java  |   4 +-
 .../cloud/upgrade/dao/UpgradeSnapshot217to224.java |   2 +-
 .../cloud/upgrade/dao/UpgradeSnapshot223to224.java |   2 +-
 .../java/com/cloud/upgrade/dao/VersionDaoImpl.java |  14 +-
 .../cloud/usage/dao/BucketStatisticsDaoImpl.java   |   2 -
 .../com/cloud/usage/dao/UsageBackupDaoImpl.java    |  10 +-
 .../java/com/cloud/usage/dao/UsageDaoImpl.java     |  40 +-
 .../com/cloud/usage/dao/UsageIPAddressDaoImpl.java |   6 +-
 .../java/com/cloud/usage/dao/UsageJobDaoImpl.java  |   6 +-
 .../usage/dao/UsageLoadBalancerPolicyDaoImpl.java  |   8 +-
 .../com/cloud/usage/dao/UsageNetworkDaoImpl.java   |   8 +-
 .../usage/dao/UsageNetworkOfferingDaoImpl.java     |   6 +-
 .../usage/dao/UsagePortForwardingRuleDaoImpl.java  |   8 +-
 .../cloud/usage/dao/UsageSecurityGroupDaoImpl.java |   6 +-
 .../com/cloud/usage/dao/UsageStorageDaoImpl.java   |   8 +-
 .../cloud/usage/dao/UsageVMInstanceDaoImpl.java    |   8 +-
 .../cloud/usage/dao/UsageVMSnapshotDaoImpl.java    |   8 +-
 .../usage/dao/UsageVMSnapshotOnPrimaryDaoImpl.java |   8 +-
 .../com/cloud/usage/dao/UsageVPNUserDaoImpl.java   |   6 +-
 .../com/cloud/usage/dao/UsageVmDiskDaoImpl.java    |   8 +-
 .../com/cloud/usage/dao/UsageVolumeDaoImpl.java    |   8 +-
 .../java/com/cloud/user/dao/AccountDaoImpl.java    |   8 +-
 .../com/cloud/user/dao/UserStatisticsDaoImpl.java  |   6 +-
 .../cloud/user/dao/VmDiskStatisticsDaoImpl.java    |   6 +-
 .../src/main/java/com/cloud/vm/VMInstanceVO.java   |   7 +-
 .../java/com/cloud/vm/dao/ConsoleProxyDaoImpl.java |  14 +-
 .../cloud/vm/dao/SecondaryStorageVmDaoImpl.java    |   6 +-
 .../cloud/vm/dao/UserVmCloneSettingDaoImpl.java    |   2 -
 .../main/java/com/cloud/vm/dao/UserVmDaoImpl.java  |  24 +-
 .../java/com/cloud/vm/dao/VMInstanceDaoImpl.java   |  16 +-
 .../cloud/vm/snapshot/dao/VMSnapshotDaoImpl.java   |   6 +-
 .../acl/dao/ProjectRolePermissionsDaoImpl.java     |   2 -
 .../cloudstack/acl/dao/RolePermissionsDaoImpl.java |   4 +-
 .../dao/AffinityGroupDomainMapDaoImpl.java         |   3 -
 .../cloud/entity/api/db/dao/VMEntityDaoImpl.java   |   2 -
 .../apache/cloudstack/ha/dao/HAConfigDaoImpl.java  |  12 +-
 .../network/dao/NetworkPermissionDaoImpl.java      |   2 -
 .../dao/OutOfBandManagementDaoImpl.java            |  16 +-
 .../cloudstack/region/dao/RegionDaoImpl.java       |   2 -
 .../datastore/db/SnapshotDataStoreDaoImpl.java     |  20 +-
 .../storage/datastore/db/SnapshotDataStoreVO.java  |   7 +-
 .../storage/datastore/db/TemplateDataStoreVO.java  |   7 +-
 .../storage/datastore/db/VolumeDataStoreVO.java    |   7 +-
 .../upgrade/dao/DatabaseAccessObjectTest.java      |   7 +-
 engine/service/src/main/webapp/WEB-INF/log4j.xml   |  59 +-
 .../allocator/StorageCacheRandomAllocator.java     |  15 +-
 .../cache/manager/StorageCacheManagerImpl.java     |  27 +-
 .../storage/configdrive/ConfigDriveBuilder.java    |  21 +-
 .../storage/motion/AncientDataMotionStrategy.java  |  73 +-
 .../storage/motion/DataMotionServiceImpl.java      |   5 +-
 .../KvmNonManagedStorageDataMotionStrategy.java    |  10 +-
 .../motion/StorageSystemDataMotionStrategy.java    | 103 +--
 .../storage/image/SecondaryStorageServiceImpl.java |  23 +-
 .../storage/image/TemplateDataFactoryImpl.java     |  13 +-
 .../storage/image/TemplateServiceImpl.java         | 111 +--
 .../manager/ImageStoreProviderManagerImpl.java     |  11 +-
 .../storage/image/store/ImageStoreImpl.java        |   9 +-
 .../storage/image/store/TemplateObject.java        |  11 +-
 .../storage/test/DirectAgentManagerSimpleImpl.java |   2 -
 .../cloudstack/storage/test/MockRpcCallBack.java   |   7 +-
 .../storage/object/ObjectStorageServiceImpl.java   |   3 -
 .../manager/ObjectStoreProviderManagerImpl.java    |   2 -
 .../storage/object/store/ObjectStoreImpl.java      |   2 -
 .../storage/snapshot/CephSnapshotStrategy.java     |   4 +-
 .../storage/snapshot/DefaultSnapshotStrategy.java  |  40 +-
 .../storage/snapshot/ScaleIOSnapshotStrategy.java  |   4 +-
 .../storage/snapshot/SnapshotObject.java           |  13 +-
 .../storage/snapshot/SnapshotServiceImpl.java      |  91 +--
 .../storage/snapshot/SnapshotStrategyBase.java     |   3 +
 .../snapshot/StorageSystemSnapshotStrategy.java    |  38 +-
 .../vmsnapshot/DefaultVMSnapshotStrategy.java      |  30 +-
 .../vmsnapshot/ScaleIOVMSnapshotStrategy.java      |  28 +-
 .../vmsnapshot/StorageVMSnapshotStrategy.java      |  34 +-
 .../cloudstack/storage/RemoteHostEndPoint.java     |  13 +-
 .../allocator/AbstractStoragePoolAllocator.java    |  74 +-
 .../ClusterScopeStoragePoolAllocator.java          |  20 +-
 .../GarbageCollectingStoragePoolAllocator.java     |   4 +-
 .../allocator/LocalStoragePoolAllocator.java       |  16 +-
 .../allocator/ZoneWideStoragePoolAllocator.java    |  18 +-
 .../storage/datastore/DataObjectManagerImpl.java   |  55 +-
 .../datastore/ObjectInDataStoreManagerImpl.java    |  27 +-
 .../provider/DataStoreProviderManagerImpl.java     |  10 +-
 .../storage/db/ObjectInDataStoreDaoImpl.java       |   6 +-
 .../storage/endpoint/DefaultEndPointSelector.java  |  15 +-
 .../storage/helper/HypervisorHelperImpl.java       |  11 +-
 .../storage/image/BaseImageStoreDriverImpl.java    |  69 +-
 .../storage/image/db/TemplateDataStoreDaoImpl.java |  18 +-
 .../storage/image/db/VolumeDataStoreDaoImpl.java   |  14 +-
 .../image/deployasis/DeployAsIsHelperImpl.java     |  45 +-
 .../storage/object/BaseObjectStoreDriverImpl.java  |   5 +-
 .../volume/datastore/PrimaryDataStoreHelper.java   |   9 +-
 .../storage/datastore/PrimaryDataStoreImpl.java    |  23 +-
 .../datastore/provider/DefaultHostListener.java    |  23 +-
 .../cloudstack/storage/volume/VolumeObject.java    |  21 +-
 .../storage/volume/VolumeServiceImpl.java          | 243 +++---
 .../userdata/CloudInitUserDataProvider.java        |   9 +-
 .../com/cloud/cluster/ClusterFenceManagerImpl.java |   4 +-
 .../java/com/cloud/cluster/ClusterManagerImpl.java | 210 +++---
 .../cluster/ClusterServiceServletAdapter.java      |  10 +-
 .../cluster/ClusterServiceServletContainer.java    |  38 +-
 .../cluster/ClusterServiceServletHttpHandler.java  |  41 +-
 .../cloud/cluster/ClusterServiceServletImpl.java   |  23 +-
 .../cluster/dao/ManagementServerHostDaoImpl.java   |  14 +-
 .../dao/ManagementServerHostPeerDaoImpl.java       |   4 +-
 .../framework/config/dao/ConfigurationDaoImpl.java |   8 +-
 .../framework/config/impl/ConfigDepotImpl.java     |   7 +-
 .../com/cloud/utils/db/ConnectionConcierge.java    |  31 +-
 .../src/main/java/com/cloud/utils/db/DbUtil.java   |   5 +-
 .../main/java/com/cloud/utils/db/DriverLoader.java |   5 +-
 .../java/com/cloud/utils/db/GenericDaoBase.java    |  42 +-
 .../main/java/com/cloud/utils/db/GlobalLock.java   |  37 +-
 .../main/java/com/cloud/utils/db/Merovingian2.java |  77 +-
 .../main/java/com/cloud/utils/db/ScriptRunner.java |  11 +-
 .../java/com/cloud/utils/db/SequenceFetcher.java   |  13 +-
 .../main/java/com/cloud/utils/db/Transaction.java  |   2 -
 .../java/com/cloud/utils/db/TransactionLegacy.java | 183 ++---
 .../java/com/cloud/utils/db/DbAnnotatedBase.java   |   7 +-
 .../com/cloud/utils/db/ElementCollectionTest.java  |   2 -
 .../java/com/cloud/utils/db/GlobalLockTest.java    |   9 +-
 .../java/com/cloud/utils/db/Merovingian2Test.java  |  15 +-
 .../framework/async/AsyncCallbackDispatcher.java   |   7 +-
 .../framework/client/ClientTransportProvider.java  |   7 +-
 .../framework/messagebus/MessageBusBase.java       |  33 +-
 .../framework/messagebus/MessageDetector.java      |   9 +-
 .../framework/messagebus/MessageDispatcher.java    |  33 +-
 .../framework/serializer/OnwireClassRegistry.java  |  23 +-
 .../framework/server/ServerTransportProvider.java  |   7 +-
 .../sampleserver/SampleManagementServer.java       |   7 +-
 .../sampleserver/SampleManagementServerApp.java    |   4 +-
 .../sampleserver/SampleManagerComponent.java       |   9 +-
 .../sampleserver/SampleManagerComponent2.java      |   9 +-
 .../cloudstack/messagebus/TestMessageBus.java      |   4 -
 framework/ipc/src/test/resources/log4j-cloud.xml   | 129 ++--
 .../framework/jobs/AsyncJobExecutionContext.java   |  17 +-
 .../framework/jobs/dao/AsyncJobDaoImpl.java        |   8 +-
 .../framework/jobs/dao/AsyncJobJoinMapDaoImpl.java |   4 +-
 .../framework/jobs/dao/SyncQueueDaoImpl.java       |   6 +-
 .../framework/jobs/dao/SyncQueueItemDaoImpl.java   |   6 +-
 .../framework/jobs/dao/VmWorkJobDaoImpl.java       |  14 +-
 .../framework/jobs/impl/AsyncJobManagerImpl.java   | 186 +++--
 .../framework/jobs/impl/AsyncJobMonitor.java       |  10 +-
 .../framework/jobs/impl/JobSerializerHelper.java   |   7 +-
 .../framework/jobs/impl/SyncQueueManagerImpl.java  |  32 +-
 .../framework/jobs/AsyncJobTestDispatcher.java     |   7 +-
 framework/managed-context/pom.xml                  |   9 +-
 .../managed/context/ManagedContextRunnable.java    |   7 +-
 .../context/impl/DefaultManagedContext.java        |   9 +-
 .../managed/threadlocal/ManagedThreadLocal.java    |   7 +-
 .../cloudstack/quota/QuotaAlertManagerImpl.java    |  50 +-
 .../apache/cloudstack/quota/QuotaManagerImpl.java  |  64 +-
 .../cloudstack/quota/QuotaStatementImpl.java       |  22 +-
 .../presetvariables/PresetVariableHelper.java      |   5 +-
 .../cloudstack/quota/dao/QuotaAccountDaoImpl.java  |   4 +-
 .../cloudstack/quota/dao/QuotaBalanceDaoImpl.java  |  12 +-
 .../quota/dao/QuotaEmailTemplatesDaoImpl.java      |   2 -
 .../cloudstack/quota/dao/QuotaTariffDaoImpl.java   |  14 +-
 .../cloudstack/quota/dao/QuotaUsageDaoImpl.java    |   2 -
 .../framework/security/keys/KeysManagerImpl.java   |   9 +-
 .../security/keystore/KeystoreManagerImpl.java     |  14 +-
 .../spring/lifecycle/AbstractSmartLifeCycle.java   |   3 +
 .../lifecycle/CloudStackExtendedLifeCycle.java     |  26 +-
 .../spring/lifecycle/registry/DumpRegistry.java    |   4 +-
 .../lifecycle/registry/ExtensionRegistry.java      |   7 +-
 .../lifecycle/registry/RegistryLifecycle.java      |   9 +-
 .../module/factory/CloudStackSpringContext.java    |   9 +-
 .../model/impl/DefaultModuleDefinitionSet.java     |  51 +-
 .../web/CloudStackContextLoaderListener.java       |  11 +-
 packaging/centos7/cloud.spec                       |   4 +-
 packaging/centos8/cloud.spec                       |   4 +-
 .../acl/DynamicRoleBasedAPIAccessChecker.java      |  10 +-
 .../acl/ProjectRoleBasedApiAccessChecker.java      |  22 +-
 .../acl/StaticRoleBasedAPIAccessChecker.java       |   6 +-
 .../affinity/ExplicitDedicationProcessor.java      |  30 +-
 .../cloudstack/affinity/HostAffinityProcessor.java |   4 +-
 .../affinity/HostAntiAffinityProcessor.java        |  18 +-
 .../affinity/NonStrictHostAffinityProcessor.java   |   2 -
 plugins/alert-handlers/snmp-alerts/pom.xml         |   8 +-
 .../alert/snmp/SnmpEnhancedPatternLayout.java      |  37 +-
 .../cloudstack/alert/snmp/SnmpTrapAppender.java    | 138 ++--
 .../alert/snmp/SnmpEnhancedPatternLayoutTest.java  |  54 +-
 .../alert/snmp/SnmpTrapAppenderTest.java           |  11 +-
 plugins/alert-handlers/syslog-alerts/pom.xml       |   8 +-
 .../cloudstack/syslog/AlertsSyslogAppender.java    | 168 ++---
 .../syslog/AlertsSyslogAppenderTest.java           |  21 +-
 .../api/command/user/discovery/ListApisCmd.java    |   2 -
 .../discovery/ApiDiscoveryServiceImpl.java         |  14 +-
 .../command/admin/ratelimit/ResetApiLimitCmd.java  |   2 -
 .../api/command/user/ratelimit/GetApiLimitCmd.java |   2 -
 .../ratelimit/ApiRateLimitServiceImpl.java         |  12 +-
 .../admin/solidfire/GetPathForVolumeCmd.java       |   4 +-
 .../admin/solidfire/GetSolidFireAccountIdCmd.java  |   4 +-
 .../GetSolidFireVolumeAccessGroupIdsCmd.java       |   4 +-
 .../admin/solidfire/GetSolidFireVolumeSizeCmd.java |   4 +-
 .../solidfire/GetVolumeSnapshotDetailsCmd.java     |   4 +-
 .../admin/solidfire/GetVolumeiScsiNameCmd.java     |   4 +-
 .../ApiSolidFireIntegrationTestServiceImpl.java    |   1 -
 .../api/command/admin/sioc/UpdateSiocInfoCmd.java  |   4 +-
 .../apache/cloudstack/sioc/SiocManagerImpl.java    |  11 +-
 .../apache/cloudstack/util/vmware/VMwareUtil.java  |   7 +-
 .../cloudstack/backup/DummyBackupProvider.java     |  16 +-
 .../cloudstack/backup/NetworkerBackupProvider.java |   5 +-
 .../backup/networker/NetworkerClient.java          |   5 +-
 .../cloudstack/backup/VeeamBackupProvider.java     |  36 +-
 .../cloudstack/backup/veeam/VeeamClient.java       | 115 +--
 .../cloudstack/backup/veeam/VeeamClientTest.java   |   2 +
 .../ca/provider/RootCACustomTrustManager.java      |  23 +-
 .../cloudstack/ca/provider/RootCAProvider.java     |  44 +-
 .../java/com/cloud/utils/db/StaticStrategy.java    |   7 +-
 .../cloudstack/api/command/QuotaBalanceCmd.java    |   2 -
 .../cloudstack/api/command/QuotaCreditsCmd.java    |   2 -
 .../api/command/QuotaEmailTemplateListCmd.java     |   2 -
 .../api/command/QuotaEmailTemplateUpdateCmd.java   |   2 -
 .../cloudstack/api/command/QuotaEnabledCmd.java    |   2 -
 .../cloudstack/api/command/QuotaStatementCmd.java  |   2 -
 .../cloudstack/api/command/QuotaSummaryCmd.java    |   2 -
 .../api/command/QuotaTariffCreateCmd.java          |   2 -
 .../api/command/QuotaTariffDeleteCmd.java          |   2 -
 .../cloudstack/api/command/QuotaTariffListCmd.java |   4 +-
 .../api/command/QuotaTariffUpdateCmd.java          |   2 -
 .../cloudstack/api/command/QuotaUpdateCmd.java     |   2 -
 .../api/response/QuotaResponseBuilderImpl.java     |  45 +-
 .../apache/cloudstack/quota/QuotaServiceImpl.java  |  40 +-
 .../api/commands/DedicateClusterCmd.java           |   2 -
 .../cloudstack/api/commands/DedicateHostCmd.java   |   2 -
 .../cloudstack/api/commands/DedicatePodCmd.java    |   2 -
 .../cloudstack/api/commands/DedicateZoneCmd.java   |   2 -
 .../api/commands/ListDedicatedClustersCmd.java     |   2 -
 .../api/commands/ListDedicatedHostsCmd.java        |   2 -
 .../api/commands/ListDedicatedPodsCmd.java         |   2 -
 .../api/commands/ListDedicatedZonesCmd.java        |   2 -
 .../api/commands/ReleaseDedicatedClusterCmd.java   |   2 -
 .../api/commands/ReleaseDedicatedHostCmd.java      |   2 -
 .../api/commands/ReleaseDedicatedPodCmd.java       |   2 -
 .../api/commands/ReleaseDedicatedZoneCmd.java      |   2 -
 .../dedicated/DedicatedResourceManagerImpl.java    |  57 +-
 .../dedicated/manager/DedicatedApiUnitTest.java    |  10 +-
 .../cloud/deploy/ImplicitDedicationPlanner.java    |  12 +-
 .../cloud/deploy/UserConcentratedPodPlanner.java   |  22 +-
 .../com/cloud/deploy/UserDispersingPlanner.java    |  38 +-
 .../cloudstack/mom/inmemory/InMemoryEventBus.java  |   2 -
 .../apache/cloudstack/mom/kafka/KafkaEventBus.java |   2 -
 .../cloudstack/mom/rabbitmq/RabbitMQEventBus.java  |  28 +-
 .../com/cloud/deploy/SkipHeuresticsPlanner.java    |   6 +-
 .../manager/allocator/impl/RandomAllocator.java    |  30 +-
 .../baremetal/manager/BareMetalDiscoverer.java     |  20 +-
 .../com/cloud/baremetal/manager/BareMetalGuru.java |   2 -
 .../cloud/baremetal/manager/BareMetalPlanner.java  |  12 +-
 .../manager/BareMetalTemplateAdapter.java          |  12 +-
 .../baremetal/manager/BaremetalManagerImpl.java    |  10 +-
 .../networkservice/BareMetalPingServiceImpl.java   |  14 +-
 .../networkservice/BareMetalResourceBase.java      |  52 +-
 .../networkservice/BaremetaNetworkGuru.java        |   6 +-
 .../networkservice/BaremetalDhcpElement.java       |   4 +-
 .../networkservice/BaremetalDhcpManagerImpl.java   |  12 +-
 .../networkservice/BaremetalDhcpResourceBase.java  |   4 +-
 .../networkservice/BaremetalDhcpdResource.java     |   8 +-
 .../networkservice/BaremetalDnsmasqResource.java   |   8 +-
 .../BaremetalKickStartPxeResource.java             |  16 +-
 .../BaremetalKickStartServiceImpl.java             |  16 +-
 .../networkservice/BaremetalPingPxeResource.java   |  22 +-
 .../networkservice/BaremetalPxeElement.java        |   4 +-
 .../networkservice/BaremetalPxeManagerImpl.java    |   6 +-
 .../networkservice/BaremetalPxeResourceBase.java   |   4 +-
 .../Force10BaremetalSwitchBackend.java             |   5 +-
 .../networkservice/SecurityGroupHttpClient.java    |   5 +-
 .../apache/cloudstack/api/AddBaremetalDhcpCmd.java |   4 +-
 .../apache/cloudstack/api/AddBaremetalPxeCmd.java  |   4 +-
 .../apache/cloudstack/api/AddBaremetalRctCmd.java  |   4 +-
 .../api/BaremetalProvisionDoneNotificationCmd.java |   4 +-
 .../cloudstack/api/DeleteBaremetalRctCmd.java      |   4 +-
 .../cloudstack/api/ListBaremetalDhcpCmd.java       |   4 +-
 .../cloudstack/api/ListBaremetalPxeServersCmd.java |   4 +-
 .../apache/cloudstack/api/ListBaremetalRctCmd.java |   4 +-
 plugins/hypervisors/hyperv/conf/log4j-cloud.xml.in |  99 +--
 .../main/java/com/cloud/ha/HypervInvestigator.java |   4 +-
 .../hyperv/discoverer/HypervServerDiscoverer.java  |  46 +-
 .../hyperv/manager/HypervManagerImpl.java          |  55 +-
 .../resource/HypervDirectConnectResource.java      | 496 +++++++------
 .../motion/HypervStorageMotionStrategy.java        |  15 +-
 .../test/HypervDirectConnectResourceTest.java      |  55 +-
 .../main/java/com/cloud/ha/KVMInvestigator.java    |  16 +-
 .../cloud/hypervisor/kvm/dpdk/DpdkDriverImpl.java  |   6 +-
 .../hypervisor/kvm/resource/BridgeVifDriver.java   |  42 +-
 .../hypervisor/kvm/resource/DirectVifDriver.java   |   2 -
 .../hypervisor/kvm/resource/IvsVifDriver.java      |  14 +-
 .../hypervisor/kvm/resource/KVMGuestOsMapper.java  |   9 +-
 .../cloud/hypervisor/kvm/resource/KVMHABase.java   |   9 +-
 .../hypervisor/kvm/resource/KVMHAChecker.java      |   8 +-
 .../hypervisor/kvm/resource/KVMHAMonitor.java      |  20 +-
 .../kvm/resource/LibvirtCapXMLParser.java          |   8 +-
 .../kvm/resource/LibvirtComputingResource.java     | 493 ++++++------
 .../hypervisor/kvm/resource/LibvirtConnection.java |  25 +-
 .../kvm/resource/LibvirtDomainXMLParser.java       |  13 +-
 .../kvm/resource/LibvirtKvmAgentHook.java          |  15 +-
 .../kvm/resource/LibvirtStoragePoolDef.java        |   2 +-
 .../kvm/resource/LibvirtStoragePoolXMLParser.java  |  11 +-
 .../resource/LibvirtStorageVolumeXMLParser.java    |  11 +-
 .../hypervisor/kvm/resource/LibvirtVMDef.java      |  15 +-
 .../hypervisor/kvm/resource/LibvirtXMLParser.java  |  13 +-
 .../hypervisor/kvm/resource/OvsVifDriver.java      |  22 +-
 .../hypervisor/kvm/resource/VRouterVifDriver.java  |  11 +-
 .../hypervisor/kvm/resource/VifDriverBase.java     |   4 +
 .../RollingMaintenanceAgentExecutor.java           |  16 +-
 .../RollingMaintenanceExecutorBase.java            |   7 +-
 .../RollingMaintenanceServiceExecutor.java         |  12 +-
 .../LibvirtBackupSnapshotCommandWrapper.java       |  26 +-
 .../wrapper/LibvirtCheckSshCommandWrapper.java     |  10 +-
 .../LibvirtCheckStorageAvailabilityWrapper.java    |   8 +-
 .../resource/wrapper/LibvirtCheckUrlCommand.java   |   6 +-
 .../wrapper/LibvirtCheckVolumeCommandWrapper.java  |   5 +-
 ...nupPersistentNetworkResourceCommandWrapper.java |   2 -
 .../LibvirtConsoleProxyLoadCommandWrapper.java     |   6 +-
 .../LibvirtConvertInstanceCommandWrapper.java      |  47 +-
 .../LibvirtCopyRemoteVolumeCommandWrapper.java     |   7 +-
 .../LibvirtCopyToSecondaryStorageWrapper.java      |   4 +-
 .../wrapper/LibvirtCopyVolumeCommandWrapper.java   |   4 +-
 .../wrapper/LibvirtCreateCommandWrapper.java       |   4 +-
 ...ePrivateTemplateFromSnapshotCommandWrapper.java |   4 +-
 ...atePrivateTemplateFromVolumeCommandWrapper.java |  12 +-
 .../LibvirtCreateVMSnapshotCommandWrapper.java     |   6 +-
 .../LibvirtDeleteVMSnapshotCommandWrapper.java     |  18 +-
 .../wrapper/LibvirtDestroyCommandWrapper.java      |   4 +-
 .../wrapper/LibvirtFenceCommandWrapper.java        |   8 +-
 .../wrapper/LibvirtFreezeThawVMCommandWrapper.java |   8 +-
 .../wrapper/LibvirtGetHostStatsCommandWrapper.java |   2 -
 .../wrapper/LibvirtGetRemoteVmsCommandWrapper.java |  13 +-
 ...LibvirtGetUnmanagedInstancesCommandWrapper.java |  14 +-
 .../LibvirtGetVmDiskStatsCommandWrapper.java       |   6 +-
 .../LibvirtGetVmIpAddressCommandWrapper.java       |  10 +-
 .../LibvirtGetVmNetworkStatsCommandWrapper.java    |   6 +-
 .../wrapper/LibvirtGetVmStatsCommandWrapper.java   |   6 +-
 .../LibvirtGetVolumeStatsCommandWrapper.java       |   2 -
 .../LibvirtHandleConfigDriveCommandWrapper.java    |  20 +-
 .../LibvirtManageSnapshotCommandWrapper.java       |  20 +-
 .../wrapper/LibvirtMigrateCommandWrapper.java      |  82 +-
 .../LibvirtMigrateVolumeCommandWrapper.java        |  24 +-
 .../LibvirtModifySshKeysCommandWrapper.java        |  20 +-
 .../LibvirtModifyTargetsCommandWrapper.java        |   2 -
 .../LibvirtNetworkRulesSystemVmCommandWrapper.java |   4 +-
 ...irtNetworkRulesVmSecondaryIpCommandWrapper.java |   4 +-
 .../LibvirtOvsCreateTunnelCommandWrapper.java      |   8 +-
 .../LibvirtOvsDestroyBridgeCommandWrapper.java     |   4 +-
 .../LibvirtOvsDestroyTunnelCommandWrapper.java     |   8 +-
 .../LibvirtOvsFetchInterfaceCommandWrapper.java    |   6 +-
 .../LibvirtOvsSetupBridgeCommandWrapper.java       |   4 +-
 ...OvsVpcPhysicalTopologyConfigCommandWrapper.java |   6 +-
 ...irtOvsVpcRoutingPolicyConfigCommandWrapper.java |   6 +-
 .../LibvirtPatchSystemVmCommandWrapper.java        |  10 +-
 .../wrapper/LibvirtPingTestCommandWrapper.java     |   6 +-
 .../wrapper/LibvirtPlugNicCommandWrapper.java      |  10 +-
 ...ibvirtPostCertificateRenewalCommandWrapper.java |   6 +-
 .../LibvirtPrepareForMigrationCommandWrapper.java  |  16 +-
 ...irtPrepareUnmanageVMInstanceCommandWrapper.java |   8 +-
 .../wrapper/LibvirtPvlanSetupCommandWrapper.java   |  14 +-
 .../wrapper/LibvirtReadyCommandWrapper.java        |   6 +-
 .../wrapper/LibvirtRebootCommandWrapper.java       |   4 +-
 .../wrapper/LibvirtReplugNicCommandWrapper.java    |  12 +-
 .../wrapper/LibvirtResizeVolumeCommandWrapper.java |  22 +-
 .../LibvirtRestoreVMSnapshotCommandWrapper.java    |  10 +-
 .../LibvirtRevertSnapshotCommandWrapper.java       |  20 +-
 .../LibvirtRevertToVMSnapshotCommandWrapper.java   |   6 +-
 ...virtRevokeDirectDownloadCertificateWrapper.java |  10 +-
 .../LibvirtRollingMaintenanceCommandWrapper.java   |  12 +-
 .../LibvirtSecurityGroupRulesCommandWrapper.java   |   8 +-
 ...tupDirectDownloadCertificateCommandWrapper.java |  14 +-
 ...ibvirtSetupPersistentNetworkCommandWrapper.java |   2 -
 .../wrapper/LibvirtStartCommandWrapper.java        |  20 +-
 .../wrapper/LibvirtStopCommandWrapper.java         |  22 +-
 .../wrapper/LibvirtUnPlugNicCommandWrapper.java    |   6 +-
 .../resource/wrapper/LibvirtUtilitiesHelper.java   |   9 +-
 .../kvm/storage/IscsiAdmStorageAdaptor.java        |  53 +-
 .../kvm/storage/IscsiStorageCleanupMonitor.java    |  27 +-
 .../kvm/storage/KVMStoragePoolManager.java         |  43 +-
 .../kvm/storage/KVMStorageProcessor.java           | 255 +++----
 .../kvm/storage/LibvirtStorageAdaptor.java         | 225 +++---
 .../hypervisor/kvm/storage/LibvirtStoragePool.java |  27 +-
 .../kvm/storage/ManagedNfsStorageAdaptor.java      |  31 +-
 .../kvm/storage/MultipathSCSIAdapterBase.java      |   7 +-
 .../kvm/storage/ScaleIOStorageAdaptor.java         |  73 +-
 .../apache/cloudstack/kvm/ha/KVMHAProvider.java    |  10 +-
 .../cloudstack/kvm/ha/KVMHostActivityChecker.java  |  38 +-
 .../org/apache/cloudstack/utils/linux/CPUStat.java |   9 +-
 .../apache/cloudstack/utils/linux/KVMHostInfo.java |   5 +-
 .../org/apache/cloudstack/utils/qemu/QemuImg.java  |   5 +-
 .../kvm/resource/LibvirtComputingResourceTest.java |   6 +-
 .../LibvirtConvertInstanceCommandWrapperTest.java  |   1 -
 .../com/cloud/ovm/hypervisor/OvmDiscoverer.java    |  22 +-
 .../java/com/cloud/ovm/hypervisor/OvmFencer.java   |  16 +-
 .../com/cloud/ovm/hypervisor/OvmResourceBase.java  | 111 +--
 .../main/java/com/cloud/ovm/object/Connection.java |   9 +-
 plugins/hypervisors/ovm3/pom.xml                   |   8 +-
 .../main/java/com/cloud/ha/Ovm3Investigator.java   |   8 +-
 .../hypervisor/ovm3/objects/CloudstackPlugin.java  |   9 +-
 .../cloud/hypervisor/ovm3/objects/Connection.java  |  21 +-
 .../com/cloud/hypervisor/ovm3/objects/Linux.java   |   5 +-
 .../com/cloud/hypervisor/ovm3/objects/Network.java |   8 +-
 .../cloud/hypervisor/ovm3/objects/OvmObject.java   |  10 +-
 .../com/cloud/hypervisor/ovm3/objects/Pool.java    |   3 -
 .../cloud/hypervisor/ovm3/objects/PoolOCFS2.java   |   5 +-
 .../cloud/hypervisor/ovm3/objects/Repository.java  |   2 -
 .../com/cloud/hypervisor/ovm3/objects/Xen.java     |  28 +-
 .../hypervisor/ovm3/resources/Ovm3Discoverer.java  |  54 +-
 .../ovm3/resources/Ovm3FenceBuilder.java           |  14 +-
 .../ovm3/resources/Ovm3HypervisorGuru.java         |   4 +-
 .../ovm3/resources/Ovm3HypervisorResource.java     |  58 +-
 .../ovm3/resources/Ovm3StorageProcessor.java       | 135 ++--
 .../ovm3/resources/Ovm3VirtualRoutingResource.java |   6 +-
 .../ovm3/resources/helpers/Ovm3Configuration.java  |  12 +-
 .../resources/helpers/Ovm3HypervisorNetwork.java   |  40 +-
 .../resources/helpers/Ovm3HypervisorSupport.java   | 101 +--
 .../ovm3/resources/helpers/Ovm3StoragePool.java    |  92 +--
 .../helpers/Ovm3VirtualRoutingSupport.java         |  24 +-
 .../ovm3/resources/helpers/Ovm3VmSupport.java      |  65 +-
 .../hypervisor/ovm3/objects/ConnectionTest.java    |  10 +-
 .../cloud/agent/manager/MockAgentManagerImpl.java  |  26 +-
 .../agent/manager/MockNetworkManagerImpl.java      |  16 +-
 .../agent/manager/MockStorageManagerImpl.java      |   4 +-
 .../com/cloud/agent/manager/MockVmManagerImpl.java |  32 +-
 .../cloud/agent/manager/SimulatorManagerImpl.java  |  16 +-
 .../api/commands/CleanupSimulatorMockCmd.java      |   2 -
 .../cloud/api/commands/ConfigureSimulatorCmd.java  |   2 -
 .../cloud/api/commands/QuerySimulatorMockCmd.java  |   2 -
 .../main/java/com/cloud/ha/SimulatorFencer.java    |  16 +-
 .../java/com/cloud/ha/SimulatorInvestigator.java   |  12 +-
 .../java/com/cloud/resource/AgentResourceBase.java |  21 +-
 .../com/cloud/resource/AgentRoutingResource.java   |   6 +-
 .../com/cloud/resource/AgentStorageResource.java   |   4 +-
 .../com/cloud/resource/SimulatorDiscoverer.java    |  28 +-
 .../resource/SimulatorSecondaryDiscoverer.java     |   4 +-
 .../cloud/resource/SimulatorStorageProcessor.java  |   9 +-
 .../simulator/dao/MockConfigurationDaoImpl.java    |   4 +-
 .../driver/SimulatorImageStoreDriverImpl.java      |   4 +-
 .../SimulatorImageStoreLifeCycleImpl.java          |   7 +-
 .../java/com/cloud/ucs/manager/UcsManagerImpl.java |  15 +-
 .../apache/cloudstack/api/AddUcsManagerCmd.java    |   4 +-
 .../api/AssociateUcsProfileToBladeCmd.java         |   4 +-
 .../apache/cloudstack/api/DeleteUcsManagerCmd.java |   2 -
 .../org/apache/cloudstack/api/ListUcsBladeCmd.java |   4 +-
 .../apache/cloudstack/api/ListUcsManagerCmd.java   |   4 +-
 .../apache/cloudstack/api/ListUcsProfileCmd.java   |   4 +-
 .../cloud/api/commands/DeleteCiscoNexusVSMCmd.java |   2 -
 .../api/commands/DisableCiscoNexusVSMCmd.java      |   2 -
 .../cloud/api/commands/EnableCiscoNexusVSMCmd.java |   2 -
 .../cloud/api/commands/ListCiscoNexusVSMsCmd.java  |   2 -
 .../java/com/cloud/hypervisor/guru/VMwareGuru.java |  86 ++-
 .../cloud/hypervisor/guru/VmwareVmImplementer.java |  21 +-
 .../cloud/hypervisor/vmware/VmwareCleanupMaid.java |   9 +-
 .../hypervisor/vmware/VmwareServerDiscoverer.java  |  72 +-
 .../hypervisor/vmware/dao/LegacyZoneDaoImpl.java   |   2 -
 .../manager/CleanupFullyClonedTemplatesTask.java   |  34 +-
 .../vmware/manager/VmwareManagerImpl.java          | 204 +++--
 .../vmware/manager/VmwareStorageManagerImpl.java   | 189 ++---
 .../vmware/resource/VmwareContextFactory.java      |  11 +-
 .../hypervisor/vmware/resource/VmwareResource.java | 822 ++++++++++-----------
 .../network/CiscoNexusVSMDeviceManagerImpl.java    |   8 +-
 .../network/dao/CiscoNexusVSMDeviceDaoImpl.java    |   2 -
 .../network/element/CiscoNexusVSMElement.java      |  10 +-
 .../resource/PremiumSecondaryStorageResource.java  |  14 +-
 .../VmwareSecondaryStorageContextFactory.java      |   7 +-
 .../VmwareSecondaryStorageResourceHandler.java     |  43 +-
 .../resource/VmwareStorageLayoutHelper.java        |  33 +-
 .../storage/resource/VmwareStorageProcessor.java   | 285 +++----
 .../VmwareStorageSubsystemCommandHandler.java      |  12 +-
 .../api/command/admin/zone/AddVmwareDcCmd.java     |   6 +-
 .../zone/ImportVsphereStoragePoliciesCmd.java      |   2 -
 .../api/command/admin/zone/ListVmwareDcsCmd.java   |   2 -
 .../admin/zone/ListVsphereStoragePoliciesCmd.java  |   2 -
 .../api/command/admin/zone/RemoveVmwareDcCmd.java  |   4 +-
 .../api/command/admin/zone/UpdateVmwareDcCmd.java  |   2 -
 .../motion/VmwareStorageMotionStrategy.java        |  35 +-
 .../main/java/com/cloud/ha/XenServerFencer.java    |  18 +-
 .../java/com/cloud/hypervisor/XenServerGuru.java   |   6 +-
 .../xenserver/discoverer/XcpServerDiscoverer.java  |  62 +-
 .../xenserver/resource/CitrixResourceBase.java     | 692 +++++++++--------
 .../xenserver/resource/XcpServerResource.java      |   6 +-
 .../xenserver/resource/XenServer56Resource.java    |  14 +-
 .../xenserver/resource/XenServer610Resource.java   |   4 +-
 .../xenserver/resource/XenServer620Resource.java   |   4 +-
 .../resource/XenServer620SP1Resource.java          |  14 +-
 .../resource/XenServerConnectionPool.java          |  57 +-
 .../resource/XenServerStorageProcessor.java        | 137 ++--
 .../xenserver/resource/Xenserver625Resource.java   |   6 +-
 .../resource/Xenserver625StorageProcessor.java     |  96 ++-
 .../xenserver/resource/XsLocalNetwork.java         |   9 +-
 ...XcpServerGetAutoScaleMetricsCommandWrapper.java |   4 +-
 .../xcp/XcpServerNetworkUsageCommandWrapper.java   |   4 +-
 .../XenServer56CheckOnHostCommandWrapper.java      |   4 +-
 .../xen56/XenServer56FenceCommandWrapper.java      |  14 +-
 ...nServer56GetAutoScaleMetricsCommandWrapper.java |   4 +-
 .../XenServer56NetworkUsageCommandWrapper.java     |   6 +-
 .../xen56p1/XenServer56FP1FenceCommandWrapper.java |  14 +-
 .../XenServer610MigrateVolumeCommandWrapper.java   |   4 +-
 ...nServer610MigrateWithStorageCommandWrapper.java |  10 +-
 ...10MigrateWithStorageCompleteCommandWrapper.java |   6 +-
 ...610MigrateWithStorageReceiveCommandWrapper.java |   6 +-
 ...ver610MigrateWithStorageSendCommandWrapper.java |  12 +-
 .../XenServer620SP1GetGPUStatsCommandWrapper.java  |   4 +-
 .../xenbase/CitrixAttachIsoCommandWrapper.java     |   6 +-
 ...ixAttachOrDettachConfigDriveCommandWrapper.java |  12 +-
 .../CitrixCheckGuestOsMappingCommandWrapper.java   |  11 +-
 .../xenbase/CitrixCheckNetworkCommandWrapper.java  |  12 +-
 .../xenbase/CitrixCheckSshCommandWrapper.java      |  10 +-
 .../CitrixCheckVirtualMachineCommandWrapper.java   |   4 +-
 .../CitrixCleanupNetworkRulesCmdWrapper.java       |   6 +-
 ...nupPersistentNetworkResourceCommandWrapper.java |   4 +-
 .../CitrixClusterVMMetaDataSyncCommandWrapper.java |   4 +-
 .../CitrixConsoleProxyLoadCommandWrapper.java      |   6 +-
 ...itrixCoppyToSecondaryStorageCommandWrapper.java |   4 +-
 .../xenbase/CitrixCreateCommandWrapper.java        |   6 +-
 .../CitrixCreateStoragePoolCommandWrapper.java     |   4 +-
 .../CitrixCreateVMSnapshotCommandWrapper.java      |   8 +-
 .../CitrixDeleteStoragePoolCommandWrapper.java     |   4 +-
 .../CitrixDeleteVMSnapshotCommandWrapper.java      |   6 +-
 .../xenbase/CitrixDestroyCommandWrapper.java       |   8 +-
 .../xenbase/CitrixGetHostStatsCommandWrapper.java  |   4 +-
 ...rixGetHypervisorGuestOsNamesCommandWrapper.java |   7 +-
 .../CitrixGetStorageStatsCommandWrapper.java       |  10 +-
 .../CitrixGetVmIpAddressCommandWrapper.java        |   8 +-
 .../xenbase/CitrixGetVmStatsCommandWrapper.java    |   6 +-
 .../xenbase/CitrixGetVncPortCommandWrapper.java    |   4 +-
 .../CitrixGetVolumeStatsCommandWrapper.java        |   6 +-
 .../CitrixListDataStoreObjectsCommandWrapper.java  |   9 +-
 .../xenbase/CitrixMaintainCommandWrapper.java      |   8 +-
 .../xenbase/CitrixMigrateCommandWrapper.java       |  12 +-
 .../CitrixModifyStoragePoolCommandWrapper.java     |  12 +-
 .../CitrixNetworkElementCommandWrapper.java        |   2 -
 .../CitrixOvsCreateGreTunnelCommandWrapper.java    |   8 +-
 .../CitrixOvsCreateTunnelCommandWrapper.java       |   8 +-
 .../xenbase/CitrixOvsDeleteFlowCommandWrapper.java |   8 +-
 .../CitrixOvsDestroyBridgeCommandWrapper.java      |   6 +-
 .../CitrixOvsDestroyTunnelCommandWrapper.java      |   6 +-
 .../CitrixOvsFetchInterfaceCommandWrapper.java     |  14 +-
 .../CitrixOvsSetTagAndFlowCommandWrapper.java      |  10 +-
 .../CitrixOvsSetupBridgeCommandWrapper.java        |   4 +-
 ...OvsVpcPhysicalTopologyConfigCommandWrapper.java |   4 +-
 ...rixOvsVpcRoutingPolicyConfigCommandWrapper.java |   4 +-
 .../xenbase/CitrixPatchSystemVmCommandWrapper.java |  10 +-
 .../xenbase/CitrixPlugNicCommandWrapper.java       |   8 +-
 .../CitrixPrepareForMigrationCommandWrapper.java   |  10 +-
 ...CitrixPrimaryStorageDownloadCommandWrapper.java |   6 +-
 .../xenbase/CitrixPvlanSetupCommandWrapper.java    |  16 +-
 .../wrapper/xenbase/CitrixReadyCommandWrapper.java |   6 +-
 .../xenbase/CitrixRebootCommandWrapper.java        |  12 +-
 .../xenbase/CitrixResizeVolumeCommandWrapper.java  |   8 +-
 .../CitrixRevertToVMSnapshotCommandWrapper.java    |   4 +-
 .../xenbase/CitrixScaleVmCommandWrapper.java       |  14 +-
 .../CitrixSecurityGroupRulesCommandWrapper.java    |  12 +-
 .../wrapper/xenbase/CitrixSetupCommandWrapper.java |  38 +-
 ...CitrixSetupPersistentNetworkCommandWrapper.java |   4 +-
 .../wrapper/xenbase/CitrixStartCommandWrapper.java |  34 +-
 .../wrapper/xenbase/CitrixStopCommandWrapper.java  |  24 +-
 .../xenbase/CitrixUnPlugNicCommandWrapper.java     |   4 +-
 .../CitrixUpdateHostPasswordCommandWrapper.java    |   4 +-
 .../CitrixUpgradeSnapshotCommandWrapper.java       |   4 +-
 .../xenserver/ExtraConfigurationUtility.java       |  17 +-
 .../xenserver/XenServerResourceNewBase.java        |  36 +-
 .../motion/XenServerStorageMotionStrategy.java     |  35 +-
 .../cloudstack/cloudian/CloudianConnectorImpl.java |  46 +-
 .../cloudstack/cloudian/client/CloudianClient.java |  49 +-
 .../cloudstack/cloudian/client/CloudianUtils.java  |   7 +-
 plugins/integrations/kubernetes-service/pom.xml    |   9 +-
 .../cluster/KubernetesClusterManagerImpl.java      | 136 ++--
 .../KubernetesClusterActionWorker.java             |  61 +-
 .../KubernetesClusterDestroyWorker.java            |  36 +-
 ...ernetesClusterResourceModifierActionWorker.java |  64 +-
 .../KubernetesClusterScaleWorker.java              |  20 +-
 .../KubernetesClusterStartWorker.java              |  50 +-
 .../actionworkers/KubernetesClusterStopWorker.java |   8 +-
 .../KubernetesClusterUpgradeWorker.java            |  22 +-
 .../cluster/utils/KubernetesClusterUtil.java       |   5 +-
 .../version/KubernetesVersionManagerImpl.java      |  10 +-
 .../version/AddKubernetesSupportedVersionCmd.java  |   2 -
 .../DeleteKubernetesSupportedVersionCmd.java       |   2 -
 .../UpdateKubernetesSupportedVersionCmd.java       |   2 -
 .../AddVirtualMachinesToKubernetesClusterCmd.java  |   2 -
 .../cluster/CreateKubernetesClusterCmd.java        |   2 -
 .../cluster/DeleteKubernetesClusterCmd.java        |   2 -
 .../cluster/GetKubernetesClusterConfigCmd.java     |   2 -
 .../cluster/ListKubernetesClustersCmd.java         |   2 -
 ...oveVirtualMachinesFromKubernetesClusterCmd.java |   2 -
 .../cluster/ScaleKubernetesClusterCmd.java         |   2 -
 .../cluster/StartKubernetesClusterCmd.java         |   2 -
 .../cluster/StopKubernetesClusterCmd.java          |   2 -
 .../cluster/UpgradeKubernetesClusterCmd.java       |   2 -
 .../ListKubernetesSupportedVersionsCmd.java        |   2 -
 .../cloudstack/metrics/PrometheusExporterImpl.java |   4 +-
 .../metrics/PrometheusExporterServerImpl.java      |  18 +-
 .../org/apache/cloudstack/api/MetricConstants.java |   2 +-
 .../cloudstack/metrics/MetricsServiceImpl.java     |  32 +-
 .../response/ManagementServerMetricsResponse.java  |   2 +-
 .../api/commands/ListBigSwitchBcfDevicesCmd.java   |   2 -
 .../cloud/network/bigswitch/BigSwitchBcfApi.java   |  19 +-
 .../cloud/network/bigswitch/BigSwitchBcfUtils.java |  11 +-
 .../cloud/network/element/BigSwitchBcfElement.java |  16 +-
 .../network/guru/BigSwitchBcfGuestNetworkGuru.java |  20 +-
 .../network/resource/BigSwitchBcfResource.java     |  18 +-
 .../commands/ListBrocadeVcsDeviceNetworksCmd.java  |   2 -
 .../com/cloud/network/brocade/BrocadeVcsApi.java   |  37 +-
 .../cloud/network/element/BrocadeVcsElement.java   |  12 +-
 .../network/guru/BrocadeVcsGuestNetworkGuru.java   |  32 +-
 .../cloud/network/resource/BrocadeVcsResource.java |  13 +-
 .../api/commands/AddCiscoAsa1000vResourceCmd.java  |   2 -
 .../api/commands/AddCiscoVnmcResourceCmd.java      |   2 -
 .../commands/DeleteCiscoAsa1000vResourceCmd.java   |   2 -
 .../api/commands/DeleteCiscoVnmcResourceCmd.java   |   2 -
 .../commands/ListCiscoAsa1000vResourcesCmd.java    |   2 -
 .../api/commands/ListCiscoVnmcResourcesCmd.java    |   2 -
 .../network/cisco/CiscoVnmcConnectionImpl.java     |   9 +-
 .../cloud/network/element/CiscoVnmcElement.java    |  64 +-
 .../cloud/network/resource/CiscoVnmcResource.java  |  29 +-
 .../element/ElasticLoadBalancerElement.java        |   6 +-
 .../network/lb/ElasticLoadBalancerManagerImpl.java |  50 +-
 .../cloud/network/lb/LoadBalanceRuleHandler.java   |  43 +-
 .../cloudstack/element/GloboDnsElement.java        |   6 +-
 .../cloudstack/resource/GloboDnsResource.java      |  32 +-
 .../element/InternalLoadBalancerElement.java       |  40 +-
 .../lb/InternalLoadBalancerVMManagerImpl.java      |  80 +-
 plugins/network-elements/juniper-contrail/pom.xml  |   4 +
 .../contrail/management/ContrailElementImpl.java   | 129 ++--
 .../network/contrail/management/ContrailGuru.java  |  52 +-
 .../contrail/management/ContrailManagerImpl.java   |  50 +-
 .../management/ContrailVpcElementImpl.java         |  25 +-
 .../network/contrail/management/DBSyncGeneric.java |  25 +-
 .../network/contrail/management/EventUtils.java    |  11 +-
 .../contrail/management/ManagementNetworkGuru.java |  10 +-
 .../contrail/management/ServerDBSyncImpl.java      | 107 +--
 .../management/ServerEventHandlerImpl.java         |  53 +-
 .../contrail/management/ServiceManagerImpl.java    |  25 +-
 .../network/contrail/model/FloatingIpModel.java    |  10 +-
 .../contrail/model/FloatingIpPoolModel.java        |   8 +-
 .../network/contrail/model/InstanceIpModel.java    |   4 +-
 .../network/contrail/model/ModelObject.java        |   5 +-
 .../network/contrail/model/ModelObjectBase.java    |   4 +
 .../network/contrail/model/NetworkPolicyModel.java |  12 +-
 .../contrail/model/ServiceInstanceModel.java       |  18 +-
 .../network/contrail/model/VMInterfaceModel.java   |   6 +-
 .../contrail/model/VirtualMachineModel.java        |  22 +-
 .../contrail/model/VirtualNetworkModel.java        |  34 +-
 .../contrail/management/ApiConnectorMockito.java   |  13 -
 .../contrail/management/ManagementServerMock.java  |  14 -
 .../contrail/management/MockAccountManager.java    |   4 +-
 .../contrail/management/NetworkProviderTest.java   |  15 +-
 .../contrail/management/PublicNetworkTest.java     |   6 -
 .../contrail/model/InstanceIpModelTest.java        |   3 -
 .../contrail/model/VMInterfaceModelTest.java       |   3 -
 .../contrail/model/VirtualMachineModelTest.java    |   4 -
 .../contrail/model/VirtualNetworkModelTest.java    |   4 -
 .../api/commands/AddNetscalerLoadBalancerCmd.java  |   2 -
 .../ConfigureNetscalerLoadBalancerCmd.java         |   2 -
 .../commands/DeleteNetscalerControlCenterCmd.java  |   2 -
 .../commands/DeleteNetscalerLoadBalancerCmd.java   |   2 -
 .../commands/DeleteServicePackageOfferingCmd.java  |   2 -
 .../cloud/api/commands/DeployNetscalerVpxCmd.java  |   2 -
 .../commands/ListNetscalerControlCenterCmd.java    |   2 -
 .../ListNetscalerLoadBalancerNetworksCmd.java      |   2 -
 .../commands/ListNetscalerLoadBalancersCmd.java    |   2 -
 .../commands/ListRegisteredServicePackageCmd.java  |   2 -
 .../RegisterNetscalerControlCenterCmd.java         |   5 -
 .../api/commands/RegisterServicePackageCmd.java    |   2 -
 .../com/cloud/api/commands/StopNetScalerVMCmd.java |   2 -
 .../cloud/network/element/NetscalerElement.java    |  64 +-
 .../resource/NetScalerControlCenterResource.java   | 127 ++--
 .../cloud/network/resource/NetscalerResource.java  | 225 +++---
 .../cloud/network/vm/NetScalerVMManagerImpl.java   |  18 +-
 .../commands/ListNiciraNvpDeviceNetworksCmd.java   |   2 -
 .../cloud/network/element/NiciraNvpElement.java    |  66 +-
 .../network/guru/NiciraNvpGuestNetworkGuru.java    |  38 +-
 .../com/cloud/network/nicira/NiciraNvpTag.java     |   9 +-
 .../com/cloud/network/nicira/NiciraRestClient.java |  10 +-
 .../cloud/network/resource/NiciraNvpResource.java  |  11 +-
 .../wrapper/NiciraCheckHealthCommandWrapper.java   |   6 +-
 ...ConfigurePortForwardingRulesCommandWrapper.java |  18 +-
 ...vpConfigureSharedNetworkUuidCommandWrapper.java |  58 +-
 ...ConfigureSharedNetworkVlanIdCommandWrapper.java |  28 +-
 ...raNvpConfigureStaticNatRulesCommandWrapper.java |  18 +-
 ...NiciraNvpCreateLogicalRouterCommandWrapper.java |   4 +-
 ...raNvpCreateLogicalSwitchPortCommandWrapper.java |   4 +-
 ...raNvpDeleteLogicalRouterPortCommandWrapper.java |   4 +-
 ...iciraNvpFindL2GatewayServiceCommandWrapper.java |   6 +-
 ...ciraNvpFindLogicalRouterPortCommandWrapper.java |   6 +-
 .../cloud/network/utils/CommandRetryUtility.java   |   7 +-
 .../network/element/NiciraNvpElementTest.java      |   2 +-
 .../network/opendaylight/OpendaylightElement.java  |   2 -
 .../opendaylight/OpendaylightGuestNetworkGuru.java |  34 +-
 .../agent/OpenDaylightControllerResource.java      |  19 +-
 .../OpenDaylightControllerResourceManagerImpl.java |   5 +-
 .../network/opendaylight/api/NeutronRestApi.java   |  25 +-
 .../network/opendaylight/api/resources/Action.java |  27 +-
 .../java/com/cloud/network/element/OvsElement.java |  24 +-
 .../cloud/network/guru/OvsGuestNetworkGuru.java    |  13 +-
 .../cloud/network/ovs/OvsTunnelManagerImpl.java    | 104 ++-
 .../ovs/dao/VpcDistributedRouterSeqNoDaoImpl.java  |   2 -
 .../cloud/api/commands/AddPaloAltoFirewallCmd.java |   2 -
 .../api/commands/ConfigurePaloAltoFirewallCmd.java |   2 -
 .../api/commands/DeletePaloAltoFirewallCmd.java    |   2 -
 .../commands/ListPaloAltoFirewallNetworksCmd.java  |   2 -
 .../api/commands/ListPaloAltoFirewallsCmd.java     |   2 -
 .../element/PaloAltoExternalFirewallElement.java   |  16 +-
 .../cloud/network/resource/PaloAltoResource.java   |  71 +-
 .../network/resource/PaloAltoResourceTest.java     |   2 +-
 .../apache/cloudstack/api/commands/AddSspCmd.java  |   4 +-
 .../cloudstack/api/commands/DeleteSspCmd.java      |   4 +-
 .../cloudstack/network/dao/SspUuidDaoImpl.java     |   2 -
 .../cloudstack/network/element/SspClient.java      |  19 +-
 .../cloudstack/network/element/SspElement.java     |  72 +-
 .../network/guru/SspGuestNetworkGuru.java          |  22 +-
 plugins/network-elements/tungsten/pom.xml          |   4 +
 ...stenFabricNetworkGatewayToLogicalRouterCmd.java |   2 -
 .../command/AddTungstenFabricPolicyRuleCmd.java    |   2 -
 .../api/command/ApplyTungstenFabricPolicyCmd.java  |   2 -
 .../api/command/ApplyTungstenFabricTagCmd.java     |   2 -
 .../command/ConfigTungstenFabricServiceCmd.java    |   8 +-
 .../CreateTungstenFabricAddressGroupCmd.java       |   2 -
 ...reateTungstenFabricApplicationPolicySetCmd.java |   2 -
 .../CreateTungstenFabricFirewallPolicyCmd.java     |   2 -
 .../CreateTungstenFabricFirewallRuleCmd.java       |   2 -
 .../CreateTungstenFabricLogicalRouterCmd.java      |   2 -
 .../CreateTungstenFabricManagementNetworkCmd.java  |   2 -
 .../api/command/CreateTungstenFabricPolicyCmd.java |   2 -
 .../command/CreateTungstenFabricProviderCmd.java   |   2 -
 .../CreateTungstenFabricPublicNetworkCmd.java      |   2 -
 .../CreateTungstenFabricServiceGroupCmd.java       |   2 -
 .../api/command/CreateTungstenFabricTagCmd.java    |   2 -
 .../command/CreateTungstenFabricTagTypeCmd.java    |   2 -
 .../DeleteTungstenFabricAddressGroupCmd.java       |   2 -
 ...eleteTungstenFabricApplicationPolicySetCmd.java |   2 -
 .../DeleteTungstenFabricFirewallPolicyCmd.java     |   2 -
 .../DeleteTungstenFabricFirewallRuleCmd.java       |   2 -
 .../DeleteTungstenFabricLogicalRouterCmd.java      |   2 -
 .../api/command/DeleteTungstenFabricPolicyCmd.java |   2 -
 .../DeleteTungstenFabricServiceGroupCmd.java       |   2 -
 .../api/command/DeleteTungstenFabricTagCmd.java    |   2 -
 .../command/DeleteTungstenFabricTagTypeCmd.java    |   2 -
 .../command/GetLoadBalancerSslCertificateCmd.java  |   2 -
 .../command/ListTungstenFabricAddressGroupCmd.java |   2 -
 .../ListTungstenFabricApplictionPolicySetCmd.java  |   2 -
 .../ListTungstenFabricFirewallPolicyCmd.java       |   2 -
 .../command/ListTungstenFabricFirewallRuleCmd.java |   2 -
 .../ListTungstenFabricLBHealthMonitorCmd.java      |   2 -
 .../ListTungstenFabricLogicalRouterCmd.java        |   2 -
 .../api/command/ListTungstenFabricNetworkCmd.java  |   2 -
 .../api/command/ListTungstenFabricNicCmd.java      |   2 -
 .../api/command/ListTungstenFabricPolicyCmd.java   |   2 -
 .../command/ListTungstenFabricPolicyRuleCmd.java   |   2 -
 .../command/ListTungstenFabricProvidersCmd.java    |   2 -
 .../command/ListTungstenFabricServiceGroupCmd.java |   2 -
 .../api/command/ListTungstenFabricTagCmd.java      |   2 -
 .../api/command/ListTungstenFabricTagTypeCmd.java  |   2 -
 .../api/command/ListTungstenFabricVmCmd.java       |   2 -
 ...enFabricNetworkGatewayFromLogicalRouterCmd.java |   2 -
 .../api/command/RemoveTungstenFabricPolicyCmd.java |   2 -
 .../command/RemoveTungstenFabricPolicyRuleCmd.java |   2 -
 .../api/command/RemoveTungstenFabricTagCmd.java    |   2 -
 .../command/SynchronizeTungstenFabricDataCmd.java  |   2 -
 .../UpdateTungstenFabricLBHealthMonitorCmd.java    |   2 -
 .../tungsten/resource/TungstenResource.java        |  11 +-
 .../network/tungsten/service/TungstenApi.java      |  27 +-
 .../network/tungsten/service/TungstenElement.java  |   6 +-
 .../tungsten/service/TungstenFabricUtils.java      |   9 +-
 .../tungsten/service/TungstenGuestNetworkGuru.java |   5 +-
 .../tungsten/service/TungstenServiceImpl.java      |  40 +-
 .../tungsten/service/TungstenVRouterApi.java       |   7 +-
 .../vrouter/IntrospectApiConnectorImpl.java        |  11 +-
 .../tungsten/vrouter/VRouterApiConnectorImpl.java  |  19 +-
 .../network/tungsten/service/TungstenApiTest.java  | 699 +++++++++---------
 .../cloud/network/guru/VxlanGuestNetworkGuru.java  |   6 +-
 .../IpmitoolOutOfBandManagementDriver.java         |  20 +-
 .../driver/ipmitool/IpmitoolWrapper.java           |   9 +-
 .../NestedCloudStackOutOfBandManagementDriver.java |   6 +-
 .../cloudstack/api/command/CancelShutdownCmd.java  |   2 -
 .../api/command/PrepareForShutdownCmd.java         |   2 -
 .../api/command/ReadyForShutdownCmd.java           |   2 -
 .../cloudstack/api/command/TriggerShutdownCmd.java |   2 -
 .../cloudstack/shutdown/ShutdownManagerImpl.java   |   3 -
 .../allocator/RandomStoragePoolAllocator.java      |  12 +-
 .../driver/CloudStackImageStoreDriverImpl.java     |  12 +-
 .../CloudStackImageStoreLifeCycleImpl.java         |   7 +-
 .../datastore/driver/S3ImageStoreDriverImpl.java   |   8 +-
 .../lifecycle/S3ImageStoreLifeCycleImpl.java       |   7 +-
 .../driver/SwiftImageStoreDriverImpl.java          |   8 +-
 .../lifecycle/SwiftImageStoreLifeCycleImpl.java    |   7 +-
 .../driver/MinIOObjectStoreDriverImpl.java         |  20 +-
 .../lifecycle/MinIOObjectStoreLifeCycleImpl.java   |   9 +-
 .../driver/SimulatorObjectStoreDriverImpl.java     |   2 -
 .../SimulatorObjectStoreLifeCycleImpl.java         |   3 -
 .../driver/AdaptiveDataStoreDriverImpl.java        |  57 +-
 .../lifecycle/AdaptiveDataStoreLifeCycleImpl.java  |  45 +-
 .../AdaptivePrimaryDatastoreAdapterFactoryMap.java |   5 +-
 .../AdaptivePrimaryDatastoreProviderImpl.java      |   9 +-
 .../provider/AdaptivePrimaryHostListener.java      |  17 +-
 .../driver/ElastistorPrimaryDataStoreDriver.java   |  20 +-
 .../ElastistorPrimaryDataStoreLifeCycle.java       |  51 +-
 .../datastore/provider/ElastistorHostListener.java |   7 +-
 .../ElastistorPrimaryDataStoreProvider.java        |   9 +-
 .../storage/datastore/util/ElastistorUtil.java     |  45 +-
 .../util/ElastistorVolumeApiServiceImpl.java       |  10 +-
 .../datastore/util/ListElastistorInterfaceCmd.java |   2 -
 .../datastore/util/ListElastistorPoolCmd.java      |   2 -
 .../datastore/util/ListElastistorVolumeCmd.java    |   2 -
 .../driver/DateraPrimaryDataStoreDriver.java       | 135 ++--
 .../lifecycle/DateraPrimaryDataStoreLifeCycle.java |  23 +-
 .../datastore/provider/DateraHostListener.java     |  13 +-
 .../storage/datastore/util/DateraUtil.java         |   9 +-
 .../CloudStackPrimaryDataStoreDriverImpl.java      |  45 +-
 .../CloudStackPrimaryDataStoreLifeCycleImpl.java   |  47 +-
 .../adapter/flasharray/FlashArrayAdapter.java      |   5 +-
 .../LinstorBackupSnapshotCommandWrapper.java       |  17 +-
 .../LinstorRevertBackupSnapshotCommandWrapper.java |   7 +-
 .../kvm/storage/LinstorStorageAdaptor.java         |  81 +-
 .../driver/LinstorPrimaryDataStoreDriverImpl.java  | 116 +--
 .../LinstorPrimaryDataStoreLifeCycleImpl.java      |  19 +-
 .../storage/datastore/util/LinstorUtil.java        |   9 +-
 .../driver/NexentaPrimaryDataStoreDriver.java      |   5 +-
 .../NexentaPrimaryDataStoreLifeCycle.java          |   6 +-
 .../datastore/provider/NexentaHostListener.java    |  15 +-
 .../storage/datastore/util/NexentaNmsClient.java   |   5 +-
 .../datastore/util/NexentaStorAppliance.java       |   6 +-
 .../datastore/adapter/primera/PrimeraAdapter.java  |   5 +-
 .../driver/SamplePrimaryDataStoreDriverImpl.java   |   7 +-
 .../client/ScaleIOGatewayClientConnectionPool.java |   9 +-
 .../datastore/client/ScaleIOGatewayClientImpl.java |  91 +--
 .../driver/ScaleIOPrimaryDataStoreDriver.java      | 133 ++--
 .../ScaleIOPrimaryDataStoreLifeCycle.java          |  35 +-
 .../datastore/provider/ScaleIOHostListener.java    |  21 +-
 .../provider/ScaleIOPrimaryDatastoreProvider.java  |   5 +-
 .../storage/datastore/util/ScaleIOUtil.java        |   5 +-
 .../driver/SolidFirePrimaryDataStoreDriver.java    |  27 +-
 .../SolidFirePrimaryDataStoreLifeCycle.java        |  17 +-
 .../SolidFireSharedPrimaryDataStoreLifeCycle.java  |  31 +-
 .../datastore/provider/SolidFireHostListener.java  |  11 +-
 .../provider/SolidFireSharedHostListener.java      |  11 +-
 .../storage/datastore/util/SolidFireUtil.java      |   7 +-
 plugins/storage/volume/storpool/pom.xml            |   9 +-
 .../StorPoolBackupSnapshotCommandWrapper.java      |   6 +-
 ...olBackupTemplateFromSnapshotCommandWrapper.java |   6 +-
 ...torPoolCopyVolumeToSecondaryCommandWrapper.java |   6 +-
 .../StorPoolDownloadTemplateCommandWrapper.java    |   6 +-
 .../StorPoolDownloadVolumeCommandWrapper.java      |   6 +-
 .../StorPoolModifyStorageCommandWrapper.java       |  12 +-
 .../StorPoolResizeVolumeCommandWrapper.java        |  10 +-
 .../StorPoolSetVolumeEncryptionCommandWrapper.java |   2 -
 .../kvm/storage/StorPoolStorageAdaptor.java        |  31 +-
 .../kvm/storage/StorPoolStoragePool.java           |  13 +-
 .../collector/StorPoolAbandonObjectsCollector.java |  34 +-
 .../driver/StorPoolPrimaryDataStoreDriver.java     |  33 +-
 .../datastore/driver/StorPoolStatsCollector.java   |  13 +-
 .../StorPoolPrimaryDataStoreLifeCycle.java         |  29 +-
 .../datastore/provider/StorPoolHostListener.java   |   9 +-
 .../storage/datastore/util/StorPoolHelper.java     |  55 +-
 .../storage/datastore/util/StorPoolUtil.java       |  23 +-
 .../storage/motion/StorPoolDataMotionStrategy.java |  25 +-
 .../storage/snapshot/StorPoolSnapshotStrategy.java |  31 +-
 .../snapshot/StorPoolVMSnapshotStrategy.java       |  28 +-
 .../cloudstack/api/command/LDAPConfigCmd.java      |   2 -
 .../cloudstack/api/command/LDAPRemoveCmd.java      |   2 -
 .../api/command/LdapAddConfigurationCmd.java       |   2 -
 .../api/command/LdapCreateAccountCmd.java          |   2 -
 .../api/command/LdapDeleteConfigurationCmd.java    |   2 -
 .../cloudstack/api/command/LdapImportUsersCmd.java |  12 +-
 .../api/command/LdapListConfigurationCmd.java      |   2 -
 .../cloudstack/api/command/LdapListUsersCmd.java   |  46 +-
 .../cloudstack/api/command/LdapUserSearchCmd.java  |   4 +-
 .../api/command/LinkAccountToLdapCmd.java          |  12 +-
 .../api/command/LinkDomainToLdapCmd.java           |  12 +-
 .../cloudstack/ldap/ADLdapUserManagerImpl.java     |   4 +-
 .../apache/cloudstack/ldap/LdapAuthenticator.java  |  40 +-
 .../apache/cloudstack/ldap/LdapContextFactory.java |   9 +-
 .../apache/cloudstack/ldap/LdapManagerImpl.java    |  46 +-
 .../cloudstack/ldap/LdapUserManagerFactory.java    |   5 +-
 .../cloudstack/ldap/OpenLdapUserManagerImpl.java   |  21 +-
 .../ldap/src/test/resources/log4j.xml              | 100 ++-
 .../cloudstack/auth/MD5UserAuthenticator.java      |  12 +-
 .../cloudstack/oauth2/OAuth2AuthManagerImpl.java   |   6 +-
 .../cloudstack/oauth2/OAuth2UserAuthenticator.java |   8 +-
 .../oauth2/api/command/DeleteOAuthProviderCmd.java |   2 -
 .../oauth2/api/command/ListOAuthProvidersCmd.java  |   4 +-
 .../api/command/OauthLoginAPIAuthenticatorCmd.java |   9 +-
 .../oauth2/api/command/UpdateOAuthProviderCmd.java |   2 -
 .../api/command/VerifyOAuthCodeAndGetUserCmd.java  |   4 +-
 .../oauth2/google/GoogleOAuth2Provider.java        |   2 -
 .../server/auth/PBKDF2UserAuthenticator.java       |  14 +-
 .../auth/PlainTextUserAuthenticator.java           |  12 +-
 .../api/command/AuthorizeSAMLSSOCmd.java           |   2 -
 .../api/command/GetServiceProviderMetaDataCmd.java |   8 +-
 .../api/command/ListAndSwitchSAMLAccountCmd.java   |   6 +-
 .../apache/cloudstack/api/command/ListIdpsCmd.java |   4 +-
 .../api/command/ListSamlAuthorizationCmd.java      |   2 -
 .../api/command/SAML2LoginAPIAuthenticatorCmd.java |  18 +-
 .../command/SAML2LogoutAPIAuthenticatorCmd.java    |  16 +-
 .../cloudstack/saml/SAML2AuthManagerImpl.java      |  46 +-
 .../cloudstack/saml/SAML2UserAuthenticator.java    |  10 +-
 .../java/org/apache/cloudstack/saml/SAMLUtils.java |  17 +-
 .../auth/SHA256SaltedUserAuthenticator.java        |  12 +-
 .../auth/StaticPinUserTwoFactorAuthenticator.java  |   4 +-
 .../auth/TotpUserTwoFactorAuthenticator.java       |   4 +-
 pom.xml                                            |  22 +-
 server/conf/log4j-cloud.xml.in                     | 242 +++---
 .../src/main/java/com/cloud/acl/DomainChecker.java |   2 -
 .../manager/allocator/impl/FirstFitAllocator.java  |  96 ++-
 .../allocator/impl/FirstFitRoutingAllocator.java   |   8 +-
 .../allocator/impl/RecreateHostAllocator.java      |  14 +-
 .../allocator/impl/UserConcentratedAllocator.java  |  36 +-
 .../manager/authn/impl/BasicAgentAuthManager.java  |   4 +-
 .../java/com/cloud/alert/AlertManagerImpl.java     |   5 +-
 .../java/com/cloud/alert/ClusterAlertAdapter.java  |  32 +-
 .../com/cloud/alert/ConsoleProxyAlertAdapter.java  |  42 +-
 .../alert/SecondaryStorageVmAlertAdapter.java      |  42 +-
 .../java/com/cloud/api/ApiAsyncJobDispatcher.java  |   4 +-
 .../src/main/java/com/cloud/api/ApiDispatcher.java |   7 +-
 .../main/java/com/cloud/api/ApiResponseHelper.java |  19 +-
 .../java/com/cloud/api/ApiSerializerHelper.java    |   9 +-
 server/src/main/java/com/cloud/api/ApiServer.java  | 131 ++--
 server/src/main/java/com/cloud/api/ApiServlet.java |  82 +-
 .../java/com/cloud/api/ApiSessionListener.java     |  21 +-
 .../com/cloud/api/EncodedStringTypeAdapter.java    |   9 +-
 .../com/cloud/api/ResponseObjectTypeAdapter.java   |  17 +-
 .../api/auth/APIAuthenticationManagerImpl.java     |   8 +-
 .../api/auth/DefaultLoginAPIAuthenticatorCmd.java  |   8 +-
 .../api/auth/DefaultLogoutAPIAuthenticatorCmd.java |   2 -
 .../auth/SetupUserTwoFactorAuthenticationCmd.java  |   2 -
 ...ValidateUserTwoFactorAuthenticationCodeCmd.java |   6 +-
 .../api/dispatch/ParamGenericValidationWorker.java |   7 +-
 .../com/cloud/api/dispatch/ParamProcessWorker.java |  33 +-
 .../com/cloud/api/dispatch/ParamUnpackWorker.java  |   7 +-
 .../java/com/cloud/api/doc/ApiXmlDocWriter.java    |  13 +-
 .../java/com/cloud/api/query/QueryManagerImpl.java |  26 +-
 .../com/cloud/api/query/ViewResponseHelper.java    |   5 +-
 .../cloud/api/query/dao/AccountJoinDaoImpl.java    |   2 -
 .../api/query/dao/AffinityGroupJoinDaoImpl.java    |   2 -
 .../cloud/api/query/dao/AsyncJobJoinDaoImpl.java   |   2 -
 .../cloud/api/query/dao/DataCenterJoinDaoImpl.java |   2 -
 .../api/query/dao/DiskOfferingJoinDaoImpl.java     |   2 -
 .../com/cloud/api/query/dao/DomainJoinDaoImpl.java |   2 -
 .../api/query/dao/DomainRouterJoinDaoImpl.java     |   2 -
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java   |   4 +-
 .../com/cloud/api/query/dao/HostTagDaoImpl.java    |   2 -
 .../cloud/api/query/dao/ImageStoreJoinDaoImpl.java |   2 -
 .../api/query/dao/InstanceGroupJoinDaoImpl.java    |   2 -
 .../api/query/dao/NetworkOfferingJoinDaoImpl.java  |   8 +-
 .../api/query/dao/ProjectAccountJoinDaoImpl.java   |   2 -
 .../query/dao/ProjectInvitationJoinDaoImpl.java    |   2 -
 .../cloud/api/query/dao/ProjectJoinDaoImpl.java    |   2 -
 .../api/query/dao/ResourceTagJoinDaoImpl.java      |   2 -
 .../api/query/dao/SecurityGroupJoinDaoImpl.java    |   4 +-
 .../api/query/dao/ServiceOfferingJoinDaoImpl.java  |   8 +-
 .../cloud/api/query/dao/SnapshotJoinDaoImpl.java   |   5 +-
 .../api/query/dao/StoragePoolJoinDaoImpl.java      |   4 +-
 .../cloud/api/query/dao/TemplateJoinDaoImpl.java   |   2 -
 .../api/query/dao/UserAccountJoinDaoImpl.java      |   2 -
 .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java |   2 -
 .../com/cloud/api/query/dao/VolumeJoinDaoImpl.java |   2 -
 .../api/query/dao/VpcOfferingJoinDaoImpl.java      |   2 -
 .../cloud/api/response/ApiResponseSerializer.java  |  13 +-
 .../com/cloud/capacity/CapacityManagerImpl.java    | 164 ++--
 .../configuration/ConfigurationManagerImpl.java    | 156 ++--
 .../AgentBasedConsoleProxyManager.java             |  22 +-
 .../AgentBasedStandaloneConsoleProxyManager.java   |  18 +-
 .../java/com/cloud/consoleproxy/AgentHookBase.java |  68 +-
 .../consoleproxy/ConsoleProxyManagerImpl.java      | 248 +++----
 .../com/cloud/dc/dao/DedicatedResourceDaoImpl.java |   9 +-
 .../deploy/DeploymentPlanningManagerImpl.java      | 261 ++++---
 .../java/com/cloud/deploy/FirstFitPlanner.java     |  90 ++-
 .../java/com/cloud/event/ActionEventUtils.java     |  15 +-
 .../main/java/com/cloud/event/AlertGenerator.java  |   7 +-
 .../java/com/cloud/event/dao/EventJoinDaoImpl.java |   2 -
 .../com/cloud/ha/AbstractInvestigatorImpl.java     |  22 +-
 .../com/cloud/ha/CheckOnAgentInvestigator.java     |  10 +-
 .../cloud/ha/HighAvailabilityManagerExtImpl.java   |  10 +-
 .../com/cloud/ha/HighAvailabilityManagerImpl.java  | 192 +++--
 server/src/main/java/com/cloud/ha/KVMFencer.java   |  10 +-
 .../cloud/ha/ManagementIPSystemVMInvestigator.java |  28 +-
 .../main/java/com/cloud/ha/RecreatableFencer.java  |  14 +-
 .../java/com/cloud/ha/UserVmDomRInvestigator.java  |  50 +-
 .../java/com/cloud/ha/XenServerInvestigator.java   |   4 +-
 .../com/cloud/ha/dao/HighAvailabilityDaoImpl.java  |   2 -
 .../hypervisor/CloudZonesStartupProcessor.java     |  10 +-
 .../com/cloud/hypervisor/HypervisorGuruBase.java   |  14 +-
 .../hypervisor/HypervisorGuruManagerImpl.java      |   2 -
 .../main/java/com/cloud/hypervisor/KVMGuru.java    |  30 +-
 .../kvm/discoverer/KvmServerDiscoverer.java        |   2 -
 .../kvm/discoverer/LibvirtServerDiscoverer.java    |  46 +-
 .../kvm/discoverer/LxcServerDiscoverer.java        |   2 -
 .../cloud/hypervisor/kvm/dpdk/DpdkHelperImpl.java  |   7 +-
 .../metadata/ResourceMetaDataManagerImpl.java      |   2 -
 .../network/ExternalDeviceUsageManagerImpl.java    |  78 +-
 .../network/ExternalFirewallDeviceManagerImpl.java |  38 +-
 .../cloud/network/ExternalIpAddressAllocator.java  |  10 +-
 .../ExternalLoadBalancerDeviceManagerImpl.java     |  86 ++-
 .../network/ExternalNetworkDeviceManagerImpl.java  |   4 +-
 .../com/cloud/network/IpAddressManagerImpl.java    | 190 +++--
 .../com/cloud/network/Ipv6AddressManagerImpl.java  |   6 +-
 .../java/com/cloud/network/Ipv6ServiceImpl.java    |  30 +-
 .../cloud/network/NetworkMigrationManagerImpl.java |  37 +-
 .../java/com/cloud/network/NetworkModelImpl.java   |  80 +-
 .../java/com/cloud/network/NetworkServiceImpl.java | 238 +++---
 .../com/cloud/network/NetworkUsageManagerImpl.java |  36 +-
 .../com/cloud/network/PortProfileManagerImpl.java  |  11 +-
 .../com/cloud/network/SshKeysDistriMonitor.java    |  11 +-
 .../cloud/network/StorageNetworkManagerImpl.java   |   8 +-
 .../com/cloud/network/as/AutoScaleManagerImpl.java | 238 +++---
 .../network/element/ConfigDriveNetworkElement.java |  36 +-
 .../network/element/VirtualRouterElement.java      |  62 +-
 .../network/element/VpcVirtualRouterElement.java   |  84 +--
 .../network/firewall/FirewallManagerImpl.java      |  58 +-
 .../com/cloud/network/guru/ControlNetworkGuru.java |  20 +-
 .../com/cloud/network/guru/DirectNetworkGuru.java  |  24 +-
 .../network/guru/DirectPodBasedNetworkGuru.java    |  14 +-
 .../network/guru/ExternalGuestNetworkGuru.java     |   6 +-
 .../com/cloud/network/guru/GuestNetworkGuru.java   |  12 +-
 .../cloud/network/guru/PodBasedNetworkGuru.java    |   8 +-
 .../com/cloud/network/guru/PrivateNetworkGuru.java |   8 +-
 .../com/cloud/network/guru/PublicNetworkGuru.java  |  10 +-
 .../com/cloud/network/guru/StorageNetworkGuru.java |   8 +-
 .../cloud/network/lb/LBHealthCheckManagerImpl.java |  16 +-
 .../network/lb/LoadBalancingRulesManagerImpl.java  | 186 +++--
 .../cloud/network/router/CommandSetupHelper.java   |  19 +-
 .../cloud/network/router/NetworkHelperImpl.java    |  83 ++-
 .../cloud/network/router/RouterControlHelper.java  |   5 +-
 .../router/VirtualNetworkApplianceManagerImpl.java | 320 ++++----
 .../cloud/network/router/VpcNetworkHelperImpl.java |   4 +-
 .../VpcVirtualNetworkApplianceManagerImpl.java     |  86 ++-
 .../com/cloud/network/rules/AdvancedVpnRules.java  |   4 +-
 .../com/cloud/network/rules/DhcpSubNetRules.java   |   6 +-
 .../com/cloud/network/rules/NicPlugInOutRules.java |  22 +-
 .../cloud/network/rules/PrivateGatewayRules.java   |  24 +-
 .../java/com/cloud/network/rules/RuleApplier.java  |   4 +
 .../com/cloud/network/rules/RulesManagerImpl.java  | 126 ++--
 .../cloud/network/rules/VpcIpAssociationRules.java |   4 +-
 .../security/LocalSecurityGroupWorkQueue.java      |   5 +-
 .../network/security/SecurityGroupListener.java    |  25 +-
 .../network/security/SecurityGroupManagerImpl.java | 142 ++--
 .../security/SecurityGroupManagerImpl2.java        |  54 +-
 .../network/security/SecurityGroupWorkTracker.java |   7 +-
 .../cloud/network/vpc/NetworkACLManagerImpl.java   |  40 +-
 .../cloud/network/vpc/NetworkACLServiceImpl.java   |  16 +-
 .../java/com/cloud/network/vpc/VpcManagerImpl.java | 234 +++---
 .../vpc/VpcPrivateGatewayTransactionCallable.java  |  11 +-
 .../network/vpn/RemoteAccessVpnManagerImpl.java    |  34 +-
 .../cloud/network/vpn/Site2SiteVpnManagerImpl.java |   8 +-
 .../com/cloud/projects/ProjectManagerImpl.java     |  86 ++-
 .../java/com/cloud/resource/DiscovererBase.java    |  20 +-
 .../com/cloud/resource/DummyHostDiscoverer.java    |   4 +-
 .../com/cloud/resource/ResourceManagerImpl.java    | 228 +++---
 .../resource/RollingMaintenanceManagerImpl.java    |  36 +-
 .../resourceicon/ResourceIconManagerImpl.java      |   7 +-
 .../cloud/resourcelimit/CheckedReservation.java    |  13 +-
 .../resourcelimit/ResourceLimitManagerImpl.java    |  46 +-
 .../com/cloud/server/ConfigurationServerImpl.java  | 134 ++--
 .../com/cloud/server/ManagementServerImpl.java     | 140 ++--
 .../main/java/com/cloud/server/StatsCollector.java | 218 +++---
 .../com/cloud/servlet/CloudStartupServlet.java     |   2 -
 .../ConsoleProxyPasswordBasedEncryptor.java        |   5 +-
 .../com/cloud/servlet/ConsoleProxyServlet.java     |  81 +-
 .../com/cloud/storage/ImageStoreServiceImpl.java   |  12 +-
 .../cloud/storage/ImageStoreUploadMonitorImpl.java |  60 +-
 .../java/com/cloud/storage/OCFS2ManagerImpl.java   |  12 +-
 .../java/com/cloud/storage/StorageManagerImpl.java | 316 ++++----
 .../cloud/storage/StoragePoolAutomationImpl.java   |  33 +-
 .../com/cloud/storage/VolumeApiServiceImpl.java    | 140 ++--
 .../storage/download/DownloadActiveState.java      |   8 +-
 .../cloud/storage/download/DownloadErrorState.java |   2 +-
 .../cloud/storage/download/DownloadListener.java   |  19 +-
 .../storage/download/DownloadMonitorImpl.java      |  28 +-
 .../com/cloud/storage/download/DownloadState.java  |  11 +-
 .../storage/listener/SnapshotStateListener.java    |   7 +-
 .../cloud/storage/listener/StoragePoolMonitor.java |  23 +-
 .../storage/listener/StorageSyncListener.java      |  11 +-
 .../storage/listener/VolumeStateListener.java      |   7 +-
 .../resource/DummySecondaryStorageResource.java    |   2 -
 .../secondary/SecondaryStorageListener.java        |   9 +-
 .../storage/snapshot/SnapshotManagerImpl.java      | 110 ++-
 .../storage/snapshot/SnapshotSchedulerImpl.java    |  42 +-
 .../cloud/storage/upload/UploadActiveState.java    |   8 +-
 .../com/cloud/storage/upload/UploadErrorState.java |   3 +-
 .../com/cloud/storage/upload/UploadListener.java   |  19 +-
 .../cloud/storage/upload/UploadMonitorImpl.java    |  36 +-
 .../java/com/cloud/storage/upload/UploadState.java |  11 +-
 .../com/cloud/tags/TaggedResourceManagerImpl.java  |  20 +-
 .../cloud/template/HypervisorTemplateAdapter.java  |  46 +-
 .../com/cloud/template/TemplateAdapterBase.java    |  12 +-
 .../com/cloud/template/TemplateManagerImpl.java    | 106 ++-
 .../main/java/com/cloud/test/DatabaseConfig.java   |  63 +-
 .../src/main/java/com/cloud/test/TestAppender.java | 181 -----
 .../java/com/cloud/usage/UsageServiceImpl.java     |  14 +-
 .../java/com/cloud/user/AccountManagerImpl.java    | 284 ++++---
 .../java/com/cloud/user/DomainManagerImpl.java     |  66 +-
 .../java/com/cloud/user/PasswordPolicyImpl.java    |   5 +-
 .../java/com/cloud/vm/SystemVmLoadScanner.java     |  13 +-
 .../main/java/com/cloud/vm/UserVmManagerImpl.java  | 548 +++++++-------
 .../java/com/cloud/vm/UserVmStateListener.java     |   7 +-
 .../cloud/vm/snapshot/VMSnapshotManagerImpl.java   |  32 +-
 .../cloudstack/acl/ProjectRoleManagerImpl.java     |  12 +-
 .../org/apache/cloudstack/acl/RoleManagerImpl.java |   3 -
 .../affinity/AffinityGroupServiceImpl.java         |  16 +-
 .../agent/lb/IndirectAgentLBServiceImpl.java       |  26 +-
 .../annotation/AnnotationManagerImpl.java          |  34 +-
 .../cloudstack/backup/BackupManagerImpl.java       |  76 +-
 .../org/apache/cloudstack/ca/CAManagerImpl.java    |  26 +-
 .../cloudstack/cluster/ClusterDrsServiceImpl.java  |   3 -
 .../consoleproxy/ConsoleAccessManagerImpl.java     |  83 ++-
 .../cloudstack/diagnostics/DiagnosticsHelper.java  |   7 +-
 .../diagnostics/DiagnosticsServiceImpl.java        |  20 +-
 .../direct/download/DirectDownloadManagerImpl.java |  70 +-
 .../org/apache/cloudstack/ha/HAManagerImpl.java    |  30 +-
 .../ha/provider/host/HAAbstractHostProvider.java   |   8 +-
 .../cloudstack/ha/task/ActivityCheckTask.java      |   2 -
 .../org/apache/cloudstack/ha/task/BaseHATask.java  |   9 +-
 .../apache/cloudstack/ha/task/HealthCheckTask.java |   2 -
 .../lb/ApplicationLoadBalancerManagerImpl.java     |  10 +-
 .../deployment/RouterDeploymentDefinition.java     |   5 +-
 .../deployment/VpcRouterDeploymentDefinition.java  |   2 -
 .../cloudstack/network/ssl/CertServiceImpl.java    |   9 +-
 .../network/topology/AdvancedNetworkTopology.java  |  32 +-
 .../network/topology/AdvancedNetworkVisitor.java   |  14 +-
 .../network/topology/BasicNetworkTopology.java     |  61 +-
 .../network/topology/BasicNetworkVisitor.java      |   4 +-
 .../network/topology/NetworkTopologyVisitor.java   |   4 +
 .../OutOfBandManagementServiceImpl.java            |  30 +-
 .../outofbandmanagement/PowerOperationTask.java    |   7 +-
 .../cloudstack/poll/BackgroundPollManagerImpl.java |   6 +-
 .../cloudstack/region/RegionManagerImpl.java       |   2 -
 .../cloudstack/region/RegionServiceImpl.java       |   2 -
 .../apache/cloudstack/region/RegionsApiUtil.java   |  39 +-
 .../gslb/GlobalLoadBalancingRulesServiceImpl.java  |  27 +-
 .../apache/cloudstack/snapshot/SnapshotHelper.java |   5 +-
 .../cloudstack/storage/NfsMountManagerImpl.java    |  33 +-
 .../storage/heuristics/HeuristicRuleHelper.java    |  11 +-
 .../storage/object/BucketApiServiceImpl.java       |  14 +-
 .../storage/template/VnfTemplateManagerImpl.java   |  17 +-
 .../cloudstack/vm/UnmanagedVMsManagerImpl.java     | 109 +--
 .../vm/schedule/VMScheduleManagerImpl.java         |   7 +-
 .../cloudstack/vm/schedule/VMSchedulerImpl.java    |  40 +-
 .../com/cloud/alert/AlertControlsUnitTest.java     |   9 +-
 .../java/com/cloud/alert/AlertManagerImplTest.java |   2 +-
 .../dispatch/ParamGenericValidationWorkerTest.java |  40 +-
 .../configuration/ConfigurationManagerTest.java    |  15 +-
 .../consoleproxy/ConsoleProxyManagerTest.java      |  16 +-
 .../com/cloud/event/EventControlsUnitTest.java     |   9 +-
 .../cloud/ha/HighAvailabilityManagerImplTest.java  |  16 +-
 .../test/java/com/cloud/keystore/KeystoreTest.java |   2 -
 .../cloud/network/CreatePrivateNetworkTest.java    |  12 +-
 .../cloud/network/DedicateGuestVlanRangesTest.java |   6 -
 .../network/firewall/FirewallManagerTest.java      |   7 +-
 .../ResourceLimitManagerImplTest.java              |   9 +-
 .../template/HypervisorTemplateAdapterTest.java    |  67 +-
 .../java/com/cloud/vpc/MockNetworkManagerImpl.java |   4 +-
 .../test/java/com/cloud/vpc/Site2SiteVpnTest.java  |  10 +-
 .../cloud/vpc/dao/MockNetworkOfferingDaoImpl.java  |   6 +-
 .../java/com/cloud/vpc/dao/MockVpcDaoImpl.java     |   6 +-
 .../GlobalLoadBalancingRulesServiceImplTest.java   |  24 +-
 .../heuristics/HeuristicRuleHelperTest.java        |  24 +-
 .../vm/schedule/VMSchedulerImplTest.java           |   9 -
 .../java/common/BufferedImagePixelsAdapter.java    |  11 +-
 .../src/main/java/rdpclient/rdp/ClientInfoPDU.java |   6 +-
 .../src/main/java/streamer/BaseElement.java        |   4 +
 .../src/main/java/streamer/InputStreamSource.java  |   6 +-
 .../src/main/java/streamer/OutputStreamSink.java   |   6 +-
 .../src/main/java/streamer/PipelineImpl.java       |   4 +
 .../src/main/java/streamer/SocketWrapperImpl.java  |  10 +-
 .../src/main/java/streamer/SyncLink.java           |  29 +-
 .../src/main/java/streamer/apr/AprSocketSink.java  |   4 +-
 .../main/java/streamer/apr/AprSocketSource.java    |   4 +-
 .../java/streamer/apr/AprSocketWrapperImpl.java    |   8 +-
 .../java/streamer/bco/BcoSocketWrapperImpl.java    |  10 +-
 .../src/main/java/streamer/debug/FakeSource.java   |   4 +-
 .../src/main/java/streamer/debug/MockServer.java   |  11 +-
 services/console-proxy/server/pom.xml              |   8 +-
 .../com/cloud/consoleproxy/AjaxFIFOImageCache.java |  18 +-
 .../java/com/cloud/consoleproxy/ConsoleProxy.java  | 124 ++--
 .../consoleproxy/ConsoleProxyAjaxHandler.java      |  78 +-
 .../consoleproxy/ConsoleProxyAjaxImageHandler.java |  24 +-
 .../ConsoleProxyBaseServerFactoryImpl.java         |  10 +-
 .../cloud/consoleproxy/ConsoleProxyClientBase.java |  23 +-
 .../cloud/consoleproxy/ConsoleProxyCmdHandler.java |  12 +-
 .../cloud/consoleproxy/ConsoleProxyGCThread.java   |  19 +-
 .../ConsoleProxyHttpHandlerHelper.java             |  30 +-
 .../consoleproxy/ConsoleProxyLoggerFactory.java    |   7 +-
 .../cloud/consoleproxy/ConsoleProxyMonitor.java    |  26 +-
 .../consoleproxy/ConsoleProxyNoVNCHandler.java     |  14 +-
 .../consoleproxy/ConsoleProxyNoVNCServer.java      |   6 +-
 .../consoleproxy/ConsoleProxyNoVncClient.java      |  33 +-
 .../ConsoleProxyPasswordBasedEncryptor.java        |   5 +-
 .../cloud/consoleproxy/ConsoleProxyRdpClient.java  |  16 +-
 .../consoleproxy/ConsoleProxyResourceHandler.java  |  42 +-
 .../ConsoleProxySecureServerFactoryImpl.java       |  27 +-
 .../consoleproxy/ConsoleProxyThumbnailHandler.java |  28 +-
 .../cloud/consoleproxy/ConsoleProxyVncClient.java  |  18 +-
 .../consoleproxy/rdp/RdpBufferedImageCanvas.java   |   6 +-
 .../java/com/cloud/consoleproxy/util/RawHTTP.java  |  12 +-
 .../consoleproxy/vnc/BufferedImageCanvas.java      |   6 +-
 .../com/cloud/consoleproxy/vnc/NoVncClient.java    |  56 +-
 .../java/com/cloud/consoleproxy/vnc/VncClient.java |  38 +-
 .../consoleproxy/vnc/VncClientPacketSender.java    |   6 +-
 .../consoleproxy/vnc/VncServerPacketReceiver.java  |   8 +-
 .../cloud/consoleproxy/vnc/network/NioSocket.java  |  21 +-
 .../vnc/network/NioSocketHandlerImpl.java          |   8 +-
 .../consoleproxy/vnc/network/NioSocketStream.java  |   9 +-
 .../vnc/network/NioSocketTLSInputStream.java       |   5 +-
 .../vnc/network/NioSocketTLSOutputStream.java      |   6 +-
 .../vnc/packet/server/AbstractRect.java            |   4 +
 .../consoleproxy/vnc/packet/server/RawRect.java    |   4 +-
 .../vnc/packet/server/ServerCutText.java           |   4 +-
 .../consoleproxy/vnc/security/VncAuthSecurity.java |   8 +-
 .../consoleproxy/vnc/security/VncTLSSecurity.java  |   4 +-
 .../websocket/WebSocketReverseProxy.java           |   2 +-
 .../PremiumSecondaryStorageManagerImpl.java        |  14 +-
 .../SecondaryStorageManagerImpl.java               | 208 +++---
 services/secondary-storage/server/pom.xml          |   8 +-
 .../storage/resource/HttpUploadServerHandler.java  |   5 +-
 .../resource/LocalNfsSecondaryStorageResource.java |  10 +-
 .../resource/LocalSecondaryStorageResource.java    |   6 +-
 .../resource/NfsSecondaryStorageResource.java      | 437 +++++------
 .../resource/SecondaryStorageDiscoverer.java       |  32 +-
 .../storage/template/DownloadManagerImpl.java      | 101 +--
 .../storage/template/UploadManagerImpl.java        |  68 +-
 .../LocalNfsSecondaryStorageResourceTest.java      |   3 -
 .../resource/NfsSecondaryStorageResourceTest.java  |  16 +-
 setup/bindir/cloud-setup-databases.in              |   3 +-
 systemvm/agent/conf/log4j-cloud.xml                | 198 +++--
 test/pom.xml                                       |  18 +-
 .../com/cloud/test/longrun/BuildGuestNetwork.java  |  21 +-
 .../java/com/cloud/test/longrun/GuestNetwork.java  |  23 +-
 .../com/cloud/test/longrun/PerformanceWithAPI.java |  39 +-
 .../main/java/com/cloud/test/longrun/User.java     |  17 +-
 .../com/cloud/test/longrun/VirtualMachine.java     |  15 +-
 .../java/com/cloud/test/regression/ApiCommand.java |  81 +-
 .../java/com/cloud/test/regression/ConfigTest.java |  26 +-
 .../cloud/test/regression/DelegatedAdminTest.java  |  18 +-
 .../java/com/cloud/test/regression/Deploy.java     |  12 +-
 .../com/cloud/test/regression/EventsApiTest.java   |  38 +-
 .../main/java/com/cloud/test/regression/HA.java    |  12 +-
 .../cloud/test/regression/LoadBalancingTest.java   |  28 +-
 .../cloud/test/regression/PortForwardingTest.java  |  30 +-
 .../java/com/cloud/test/regression/SanityTest.java |  14 +-
 .../main/java/com/cloud/test/regression/Test.java  |   8 +-
 .../java/com/cloud/test/regression/TestCase.java   |  15 +-
 .../com/cloud/test/regression/TestCaseEngine.java  |  27 +-
 .../java/com/cloud/test/regression/VMApiTest.java  |  16 +-
 .../main/java/com/cloud/test/stress/SshTest.java   |  17 +-
 .../cloud/test/stress/StressTestDirectAttach.java  | 301 ++++----
 .../com/cloud/test/stress/TestClientWithAPI.java   | 523 ++++++-------
 .../main/java/com/cloud/test/stress/WgetTest.java  |  25 +-
 .../java/com/cloud/test/ui/AddAndDeleteAISO.java   |   6 +-
 .../com/cloud/test/ui/AddAndDeleteATemplate.java   |   6 +-
 .../java/com/cloud/test/ui/UIScenarioTest.java     |   4 +-
 .../java/com/cloud/test/utils/ConsoleProxy.java    |   8 +-
 .../java/com/cloud/test/utils/IpSqlGenerator.java  |   2 +-
 .../java/com/cloud/test/utils/ProxyLoadTemp.java   |  24 +-
 .../main/java/com/cloud/test/utils/SignEC2.java    |  25 +-
 .../com/cloud/test/utils/SqlDataGenerator.java     |   2 +-
 .../main/java/com/cloud/test/utils/SubmitCert.java |  25 +-
 .../main/java/com/cloud/test/utils/TestClient.java |  73 +-
 usage/conf/log4j-cloud_usage.xml.in                |  91 +--
 .../com/cloud/usage/UsageAlertManagerImpl.java     |   5 +-
 .../java/com/cloud/usage/UsageManagerImpl.java     | 366 +++++----
 .../java/com/cloud/usage/UsageSanityChecker.java   |  29 +-
 .../src/main/java/com/cloud/usage/UsageServer.java |   9 +-
 .../com/cloud/usage/parser/BackupUsageParser.java  |   5 +-
 .../com/cloud/usage/parser/BucketUsageParser.java  |   9 +-
 .../cloud/usage/parser/IPAddressUsageParser.java   |  19 +-
 .../usage/parser/LoadBalancerUsageParser.java      |  19 +-
 .../usage/parser/NetworkOfferingUsageParser.java   |  19 +-
 .../com/cloud/usage/parser/NetworkUsageParser.java |  17 +-
 .../usage/parser/PortForwardingUsageParser.java    |  19 +-
 .../usage/parser/SecurityGroupUsageParser.java     |  19 +-
 .../com/cloud/usage/parser/StorageUsageParser.java |  19 +-
 .../java/com/cloud/usage/parser/UsageParser.java   |   4 +-
 .../cloud/usage/parser/VMInstanceUsageParser.java  |  17 +-
 .../usage/parser/VMSnapshotOnPrimaryParser.java    |  23 +-
 .../cloud/usage/parser/VMSnapshotUsageParser.java  |  19 +-
 .../com/cloud/usage/parser/VPNUserUsageParser.java |  19 +-
 .../com/cloud/usage/parser/VmDiskUsageParser.java  |  17 +-
 .../com/cloud/usage/parser/VolumeUsageParser.java  |  19 +-
 .../com/cloud/usage/UsageAlertManagerImplTest.java |   2 +-
 utils/conf/log4j-vmops.xml                         | 158 ++--
 utils/pom.xml                                      |  16 +-
 .../java/com/cloud/utils/AutoCloseableUtil.java    |   7 +-
 .../main/java/com/cloud/utils/EncryptionUtil.java  |   7 +-
 utils/src/main/java/com/cloud/utils/FileUtil.java  |   9 +-
 utils/src/main/java/com/cloud/utils/HttpUtils.java |  11 +-
 .../java/com/cloud/utils/HumanReadableJson.java    |   5 +-
 utils/src/main/java/com/cloud/utils/Journal.java   |   6 +-
 utils/src/main/java/com/cloud/utils/LogUtils.java  |  35 +-
 .../src/main/java/com/cloud/utils/ProcessUtil.java |  13 +-
 .../main/java/com/cloud/utils/PropertiesUtil.java  |  11 +-
 .../src/main/java/com/cloud/utils/ReflectUtil.java |  14 +-
 utils/src/main/java/com/cloud/utils/SwiftUtil.java |  27 +-
 utils/src/main/java/com/cloud/utils/UriUtils.java  |  25 +-
 .../utils/backoff/impl/ConstantTimeBackoff.java    |   4 +-
 .../cloud/utils/cisco/n1kv/vsm/NetconfHelper.java  |   9 +-
 .../com/cloud/utils/cisco/n1kv/vsm/VsmCommand.java |  49 +-
 .../utils/cisco/n1kv/vsm/VsmPolicyMapResponse.java |   4 +-
 .../cisco/n1kv/vsm/VsmPortProfileResponse.java     |   4 +-
 .../cloud/utils/cisco/n1kv/vsm/VsmResponse.java    |  15 +-
 .../cloud/utils/component/ComponentContext.java    |  43 +-
 .../ComponentInstantiationPostProcessor.java       |   5 +-
 .../utils/component/ComponentLifecycleBase.java    |   5 +-
 .../cloud/utils/compression/CompressionUtil.java   |   5 +-
 .../utils/concurrency/SynchronizationEvent.java    |   9 +-
 .../com/cloud/utils/crypt/CloudStackEncryptor.java |  19 +-
 .../com/cloud/utils/crypt/DBEncryptionUtil.java    |   9 +-
 .../utils/crypt/EncryptionSecretKeyChecker.java    |  11 +-
 .../main/java/com/cloud/utils/crypt/RSAHelper.java |   7 +-
 .../main/java/com/cloud/utils/db/DbProperties.java |  15 +-
 .../com/cloud/utils/events/SubscriptionMgr.java    |  11 +-
 .../utils/exception/CSExceptionErrorCode.java      |   7 +-
 .../cloud/utils/log/CglibThrowableRenderer.java    |  82 --
 utils/src/main/java/com/cloud/utils/net/Dhcp.java  |   2 +-
 .../main/java/com/cloud/utils/net/HTTPUtils.java   |   5 +-
 .../main/java/com/cloud/utils/net/MacAddress.java  |   9 +-
 .../main/java/com/cloud/utils/net/NetUtils.java    |  81 +-
 .../nicira/nvp/plugin/NiciraNvpApiVersion.java     |   7 +-
 utils/src/main/java/com/cloud/utils/nio/Link.java  |  63 +-
 .../main/java/com/cloud/utils/nio/NioClient.java   |  12 +-
 .../java/com/cloud/utils/nio/NioConnection.java    |  95 +--
 .../main/java/com/cloud/utils/nio/NioServer.java   |   6 +-
 .../java/com/cloud/utils/rest/BasicRestClient.java |   9 +-
 .../com/cloud/utils/rest/RESTServiceConnector.java |  19 +-
 .../com/cloud/utils/script/OutputInterpreter.java  |   8 +-
 .../main/java/com/cloud/utils/script/Script.java   |  47 +-
 .../main/java/com/cloud/utils/script/Script2.java  |   2 +-
 .../com/cloud/utils/server/ServerProperties.java   |   5 +-
 .../java/com/cloud/utils/ssh/SSHCmdHelper.java     |  21 +-
 .../main/java/com/cloud/utils/ssh/SshHelper.java   |  35 +-
 .../java/com/cloud/utils/storage/QCOW2Utils.java   |   5 +-
 .../java/com/cloud/utils/storage/S3/S3Utils.java   |   5 +-
 .../com/cloud/utils/storage/encoding/Decoder.java  |   9 +-
 .../java/com/cloud/utils/time/InaccurateClock.java |  11 +-
 .../java/com/cloud/utils/xmlobject/XmlObject.java  |   5 +-
 .../utils/hypervisor/HypervisorUtils.java          |  11 +-
 .../utils/identity/ManagementServerNode.java       |   4 +-
 .../utils/imagestore/ImageStoreUtil.java           |  19 +-
 .../utils/jsinterpreter/JsInterpreter.java         |   5 +-
 .../utils/jsinterpreter/TagAsRuleHelper.java       |   5 +-
 .../cloudstack/utils/mailing/SMTPMailSender.java   |   5 +-
 .../cloudstack/utils/process/ProcessRunner.java    |  21 +-
 .../cloudstack/utils/redfish/RedfishClient.java    |  19 +-
 .../ReflectionToStringBuilderUtils.java            |   5 +-
 .../cloudstack/utils/security/CertUtils.java       |   7 +-
 .../cloudstack/utils/security/DigestHelper.java    |   5 +-
 .../cloudstack/utils/security/ParserUtils.java     |   5 +-
 .../apache/cloudstack/utils/security/SSLUtils.java |   5 +-
 .../utils/security/SecureSSLSocketFactory.java     |   7 +-
 .../contrib/ssl/EasySSLProtocolSocketFactory.java  |   9 +-
 .../contrib/ssl/EasyX509TrustManager.java          |  11 +-
 .../src/test/java/com/cloud/utils/ScriptTest.java  |   7 +-
 .../backoff/impl/ConstantTimeBackoffTest.java      |  13 +-
 .../utils/log/CglibThrowableRendererTest.java      |  85 ---
 .../cloud/utils/testcase/Log4jEnabledTestCase.java |   5 +-
 .../java/com/cloud/utils/testcase/NioTest.java     |  43 +-
 .../utils/mailing/SMTPMailSenderTest.java          |   2 +-
 utils/src/test/resources/log4j.xml                 | 137 +---
 .../com/cloud/hypervisor/vmware/mo/BaseMO.java     |   9 +-
 .../com/cloud/hypervisor/vmware/mo/ClusterMO.java  | 172 +++--
 .../cloud/hypervisor/vmware/mo/DatacenterMO.java   |  10 +-
 .../cloud/hypervisor/vmware/mo/DatastoreMO.java    |  40 +-
 .../vmware/mo/DistributedVirtualSwitchMO.java      |  10 +-
 .../vmware/mo/HostDatastoreBrowserMO.java          |  30 +-
 .../hypervisor/vmware/mo/HostFirewallSystemMO.java |   2 -
 .../com/cloud/hypervisor/vmware/mo/HostMO.java     | 168 +++--
 .../hypervisor/vmware/mo/HostNetworkSystemMO.java  |   2 -
 .../cloud/hypervisor/vmware/mo/HttpNfcLeaseMO.java |  16 +-
 .../hypervisor/vmware/mo/HypervisorHostHelper.java | 239 +++---
 .../vmware/mo/LicenseAssignmentManagerMO.java      |   2 -
 .../hypervisor/vmware/mo/LicenseManagerMO.java     |   2 -
 .../hypervisor/vmware/mo/PbmPlacementSolverMO.java |   2 -
 .../hypervisor/vmware/mo/PbmProfileManagerMO.java  |   8 +-
 .../hypervisor/vmware/mo/SnapshotDescriptor.java   |   9 +-
 .../cloud/hypervisor/vmware/mo/StoragepodMO.java   |   2 -
 .../com/cloud/hypervisor/vmware/mo/TaskMO.java     |   8 +-
 .../hypervisor/vmware/mo/VirtualDiskManagerMO.java |   2 -
 .../hypervisor/vmware/mo/VirtualMachineMO.java     | 396 +++++-----
 .../vmware/mo/VirtualStorageObjectManagerMO.java   |   4 +-
 .../hypervisor/vmware/mo/VmdkFileDescriptor.java   |  13 +-
 .../vmware/util/VcenterSessionHandler.java         |   9 +-
 .../cloud/hypervisor/vmware/util/VmwareClient.java |  41 +-
 .../hypervisor/vmware/util/VmwareContext.java      |  47 +-
 .../hypervisor/vmware/util/VmwareContextPool.java  |  19 +-
 .../cloud/hypervisor/vmware/util/VmwareHelper.java |  39 +-
 .../vmware/mo/TestVmwareContextFactory.java        |   9 +-
 2097 files changed, 20408 insertions(+), 23663 deletions(-)

diff --git a/agent/conf/log4j-cloud.xml.in b/agent/conf/log4j-cloud.xml.in
index 9ed43e083e0..44ebd1358af 100644
--- a/agent/conf/log4j-cloud.xml.in
+++ b/agent/conf/log4j-cloud.xml.in
@@ -17,91 +17,60 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
-   <!-- ================================= -->
-   <!-- Preserve messages in a local file -->
-   <!-- ================================= -->
-
-   <!-- A time/date based rolling appender -->
-   <appender name="FILE" class="org.apache.log4j.rolling.RollingFileAppender">
-      <param name="Append" value="true"/>
-      <param name="Threshold" value="INFO"/>
-      <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
-        <param name="FileNamePattern" value="@AGENTLOG@.%d{yyyy-MM-dd}.gz"/>
-        <param name="ActiveFileName" value="@AGENTLOG@"/>
-      </rollingPolicy>
-      <layout class="org.apache.log4j.EnhancedPatternLayout">
-         <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{3}] (%t:%x) (logid:%X{logcontextid}) %m%n"/>
-      </layout>
-   </appender>
-   
-   <!-- ============================== -->
-   <!-- Append messages to the console -->
-   <!-- ============================== -->
-
-   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-      <param name="Target" value="System.out"/>
-      <param name="Threshold" value="INFO"/>
-
-      <layout class="org.apache.log4j.PatternLayout">
-         <param name="ConversionPattern" value="%-5p [%c{3}] (%t:%x) (logid:%X{logcontextid}) %m%n"/>
-      </layout>
-   </appender>
-
-   <!-- ================ -->
-   <!-- Limit categories -->
-   <!-- ================ -->
-
-   <category name="com.cloud">
-     <priority value="INFO"/>
-   </category>
-   
-   <category name="com.cloud.agent.metrics">
-     <priority value="INFO"/>
-   </category>
-   
-   <category name="com.cloud.agent.resource.computing.ComputingResource$StorageMonitorTask">
-     <priority value="INFO"/>
-   </category>
-
-   <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
-   <category name="org.apache">
-      <priority value="INFO"/>
-   </category>
-
-   <category name="org">
-      <priority value="INFO"/>
-   </category>
-   
-   <category name="net">
-      <priority value="INFO"/>
-   </category>
-
-   <!-- Limit the com.amazonaws category to INFO as its DEBUG is verbose -->
-   <category name="com.amazonaws">
-      <priority value="INFO"/>
-   </category>
-
-   <!-- Limit the httpclient.wire category to INFO as its DEBUG is verbose -->
-   <category name="httpclient.wire">
-      <priority value="INFO"/>
-   </category>
-
-   <category name="org.apache.http.wire">
-      <priority value="INFO"/>
-   </category>
-
-   <!-- ======================= -->
-   <!-- Setup the Root category -->
-   <!-- ======================= -->
-
-   <root>
-      <level value="INFO"/>
-      <appender-ref ref="CONSOLE"/>
-      <appender-ref ref="FILE"/>
-   </root>
-
-</log4j:configuration>
+<Configuration monitorInterval="60">
+   <Appenders>
+
+      <!-- ================================= -->
+      <!-- Preserve messages in a local file -->
+      <!-- ================================= -->
+
+      <!-- A time/date based rolling appender -->
+      <RollingFile name="FILE" append="true" fileName="@AGENTLOG@" filePattern="@AGENTLOG@.%d{yyyy-MM-dd}.gz">
+         <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
+         <Policies>
+            <TimeBasedTriggeringPolicy/>
+         </Policies>
+         <PatternLayout pattern="%d{ISO8601} %-5p [%c{3}] (%t:%x) (logid:%X{logcontextid}) %m%ex%n"/>
+      </RollingFile>
+
+      <!-- ============================== -->
+      <!-- Append messages to the console -->
+      <!-- ============================== -->
+
+      <Console name="CONSOLE" target="SYSTEM_OUT">
+          <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
+          <PatternLayout pattern="%-5p [%c{3}] (%t:%x) (logid:%X{logcontextid}) %m%ex%n"/>
+      </Console>
+   </Appenders>
+
+   <Loggers>
+
+      <!-- ================ -->
+      <!-- Limit categories -->
+      <!-- ================ -->
+
+      <Logger name="com.cloud" level="INFO"/>
+
+      <Logger name="org.apache" level="INFO"/>
+
+      <Logger name="org" level="INFO"/>
+
+      <Logger name="net" level="INFO"/>
+
+      <Logger name="com.amazonaws" level="INFO"/>
+
+      <Logger name="httpclient.wire" level="INFO"/>
+
+      <Logger name="org.apache.http.wire" level="INFO"/>
+
+      <!-- ======================= -->
+      <!-- Setup the Root category -->
+      <!-- ======================= -->
+
+      <Root level="INFO">
+         <AppenderRef ref="CONSOLE"/>
+         <AppenderRef ref="FILE"/>
+      </Root>
+
+   </Loggers>
+</Configuration>
diff --git a/agent/src/main/java/com/cloud/agent/Agent.java b/agent/src/main/java/com/cloud/agent/Agent.java
index 9e0ee746c03..e2ec7d9a17d 100644
--- a/agent/src/main/java/com/cloud/agent/Agent.java
+++ b/agent/src/main/java/com/cloud/agent/Agent.java
@@ -56,8 +56,8 @@ import org.apache.cloudstack.utils.security.KeyStoreUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
-import org.apache.log4j.MDC;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import com.cloud.agent.api.AgentControlAnswer;
 import com.cloud.agent.api.AgentControlCommand;
@@ -89,6 +89,7 @@ import com.cloud.utils.nio.NioConnection;
 import com.cloud.utils.nio.Task;
 import com.cloud.utils.script.OutputInterpreter;
 import com.cloud.utils.script.Script;
+import org.apache.logging.log4j.ThreadContext;
 
 /**
  * @config
@@ -104,7 +105,7 @@ import com.cloud.utils.script.Script;
  *
  **/
 public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater {
-    protected static Logger s_logger = Logger.getLogger(Agent.class);
+    protected Logger logger = LogManager.getLogger(getClass());
 
     public enum ExitStatus {
         Normal(0), // Normal status = 0.
@@ -181,7 +182,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
 
         final String value = _shell.getPersistentProperty(getResourceName(), "id");
         _id = value != null ? Long.parseLong(value) : null;
-        s_logger.info("id is " + (_id != null ? _id : ""));
+        logger.info("id is " + (_id != null ? _id : ""));
 
         final Map<String, Object> params = new HashMap<>();
 
@@ -199,7 +200,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
 
         // ((NioClient)_connection).setBindAddress(_shell.getPrivateIp());
 
-        s_logger.debug("Adding shutdown hook");
+        logger.debug("Adding shutdown hook");
         Runtime.getRuntime().addShutdownHook(_shutdownThread);
 
         _ugentTaskPool =
@@ -210,7 +211,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 new ThreadPoolExecutor(_shell.getWorkers(), 5 * _shell.getWorkers(), 1, TimeUnit.DAYS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory(
                         "agentRequest-Handler"));
 
-        s_logger.info("Agent [id = " + (_id != null ? _id : "new") + " : type = " + getResourceName() + " : zone = " + _shell.getZone() + " : pod = " + _shell.getPod() +
+        logger.info("Agent [id = " + (_id != null ? _id : "new") + " : type = " + getResourceName() + " : zone = " + _shell.getZone() + " : pod = " + _shell.getPod() +
                 " : workers = " + _shell.getWorkers() + " : host = " + host + " : port = " + _shell.getPort());
     }
 
@@ -268,7 +269,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
 
     public void start() {
         if (!_resource.start()) {
-            s_logger.error("Unable to start the resource: " + _resource.getName());
+            logger.error("Unable to start the resource: " + _resource.getName());
             throw new CloudRuntimeException("Unable to start the resource: " + _resource.getName());
         }
 
@@ -285,14 +286,14 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         try {
             _connection.start();
         } catch (final NioConnectionException e) {
-            s_logger.warn("NIO Connection Exception  " + e);
-            s_logger.info("Attempted to connect to the server, but received an unexpected exception, trying again...");
+            logger.warn("NIO Connection Exception  " + e);
+            logger.info("Attempted to connect to the server, but received an unexpected exception, trying again...");
         }
         while (!_connection.isStartup()) {
             final String host = _shell.getNextHost();
             _shell.getBackoffAlgorithm().waitBeforeRetry();
             _connection = new NioClient("Agent", host, _shell.getPort(), _shell.getWorkers(), this);
-            s_logger.info("Connecting to host:" + host);
+            logger.info("Connecting to host:" + host);
             try {
                 _connection.start();
             } catch (final NioConnectionException e) {
@@ -300,9 +301,9 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 try {
                     _connection.cleanUp();
                 } catch (final IOException ex) {
-                    s_logger.warn("Fail to clean up old connection. " + ex);
+                    logger.warn("Fail to clean up old connection. " + ex);
                 }
-                s_logger.info("Attempted to connect to the server, but received an unexpected exception, trying again...", e);
+                logger.info("Attempted to connect to the server, but received an unexpected exception, trying again...", e);
             }
         }
         _shell.updateConnectedHost();
@@ -311,7 +312,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
     }
 
     public void stop(final String reason, final String detail) {
-        s_logger.info("Stopping the agent: Reason = " + reason + (detail != null ? ": Detail = " + detail : ""));
+        logger.info("Stopping the agent: Reason = " + reason + (detail != null ? ": Detail = " + detail : ""));
         _reconnectAllowed = false;
         if (_connection != null) {
             final ShutdownCommand cmd = new ShutdownCommand(reason, detail);
@@ -321,15 +322,15 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                     _link.send(req.toBytes());
                 }
             } catch (final ClosedChannelException e) {
-                s_logger.warn("Unable to send: " + cmd.toString());
+                logger.warn("Unable to send: " + cmd.toString());
             } catch (final Exception e) {
-                s_logger.warn("Unable to send: " + cmd.toString() + " due to exception: ", e);
+                logger.warn("Unable to send: " + cmd.toString() + " due to exception: ", e);
             }
-            s_logger.debug("Sending shutdown to management server");
+            logger.debug("Sending shutdown to management server");
             try {
                 Thread.sleep(1000);
             } catch (final InterruptedException e) {
-                s_logger.debug("Who the heck interrupted me here?");
+                logger.debug("Who the heck interrupted me here?");
             }
             _connection.stop();
             _connection = null;
@@ -376,7 +377,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
     }
 
     public void setId(final Long id) {
-        s_logger.info("Set agent id " + id);
+        logger.info("Set agent id " + id);
         _id = id;
         _shell.setPersistentProperty(getResourceName(), "id", Long.toString(id));
     }
@@ -395,7 +396,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             hostLBTimer.cancel();
         }
         if (checkInterval > 0L) {
-            s_logger.info("Scheduling preferred host timer task with host.lb.interval=" + checkInterval + "ms");
+            logger.info("Scheduling preferred host timer task with host.lb.interval=" + checkInterval + "ms");
             hostLBTimer = new Timer("Host LB Timer");
             hostLBTimer.scheduleAtFixedRate(new PreferredHostCheckerTask(), checkInterval, checkInterval);
         }
@@ -403,8 +404,8 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
 
     public void scheduleWatch(final Link link, final Request request, final long delay, final long period) {
         synchronized (_watchList) {
-            if (s_logger.isDebugEnabled()) {
-                s_logger.debug("Adding a watch list");
+            if (logger.isDebugEnabled()) {
+                logger.debug("Adding a watch list");
             }
             final WatchTask task = new WatchTask(link, request, this);
             _timer.schedule(task, 0, period);
@@ -415,14 +416,14 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
     public void triggerUpdate() {
         PingCommand command = _resource.getCurrentStatus(getId());
         command.setOutOfBand(true);
-        s_logger.debug("Sending out of band ping");
+        logger.debug("Sending out of band ping");
 
         final Request request = new Request(_id, -1, command, false);
         request.setSequence(getNextSequence());
         try {
             _link.send(request.toBytes());
         } catch (final ClosedChannelException e) {
-            s_logger.warn("Unable to send ping update: " + request.toString());
+            logger.warn("Unable to send ping update: " + request.toString());
         }
     }
 
@@ -431,8 +432,8 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             for (final WatchTask task : _watchList) {
                 task.cancel();
             }
-            if (s_logger.isDebugEnabled()) {
-                s_logger.debug("Clearing watch list: " + _watchList.size());
+            if (logger.isDebugEnabled()) {
+                logger.debug("Clearing watch list: " + _watchList.size());
             }
             _watchList.clear();
         }
@@ -469,14 +470,14 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             final Request request = new Request(_id != null ? _id : -1, -1, commands, false, false);
             request.setSequence(getNextSequence());
 
-            if (s_logger.isDebugEnabled()) {
-                s_logger.debug("Sending Startup: " + request.toString());
+            if (logger.isDebugEnabled()) {
+                logger.debug("Sending Startup: " + request.toString());
             }
             lockStartupTask(link);
             try {
                 link.send(request.toBytes());
             } catch (final ClosedChannelException e) {
-                s_logger.warn("Unable to send request: " + request.toString());
+                logger.warn("Unable to send request: " + request.toString());
             }
 
             if (_resource instanceof ResourceStatusUpdater) {
@@ -490,11 +491,11 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         try {
             addr = InetAddress.getLocalHost();
         } catch (final UnknownHostException e) {
-            s_logger.warn("unknown host? ", e);
+            logger.warn("unknown host? ", e);
             throw new CloudRuntimeException("Cannot get local IP address");
         }
 
-        final Script command = new Script("hostname", 500, s_logger);
+        final Script command = new Script("hostname", 500, logger);
         final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
         final String result = command.execute(parser);
         final String hostname = result == null ? parser.getLine() : addr.toString();
@@ -536,14 +537,14 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
 
         _resource.disconnected();
 
-        s_logger.info("Lost connection to host: " + _shell.getConnectedHost() + ". Attempting reconnection while we still have " + _inProgress.get() + " commands in progress.");
+        logger.info("Lost connection to host: " + _shell.getConnectedHost() + ". Attempting reconnection while we still have " + _inProgress.get() + " commands in progress.");
 
         _connection.stop();
 
         try {
             _connection.cleanUp();
         } catch (final IOException e) {
-            s_logger.warn("Fail to clean up old connection. " + e);
+            logger.warn("Fail to clean up old connection. " + e);
         }
 
         while (_connection.isStartup()) {
@@ -553,22 +554,22 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         do {
             final String host = _shell.getNextHost();
             _connection = new NioClient("Agent", host, _shell.getPort(), _shell.getWorkers(), this);
-            s_logger.info("Reconnecting to host:" + host);
+            logger.info("Reconnecting to host:" + host);
             try {
                 _connection.start();
             } catch (final NioConnectionException e) {
-                s_logger.info("Attempted to re-connect to the server, but received an unexpected exception, trying again...", e);
+                logger.info("Attempted to re-connect to the server, but received an unexpected exception, trying again...", e);
                 _connection.stop();
                 try {
                     _connection.cleanUp();
                 } catch (final IOException ex) {
-                    s_logger.warn("Fail to clean up old connection. " + ex);
+                    logger.warn("Fail to clean up old connection. " + ex);
                 }
             }
             _shell.getBackoffAlgorithm().waitBeforeRetry();
         } while (!_connection.isStartup());
         _shell.updateConnectedHost();
-        s_logger.info("Connected to the host: " + _shell.getConnectedHost());
+        logger.info("Connected to the host: " + _shell.getConnectedHost());
     }
 
     public void processStartupAnswer(final Answer answer, final Response response, final Link link) {
@@ -583,15 +584,15 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         }
         final StartupAnswer startup = (StartupAnswer)answer;
         if (!startup.getResult()) {
-            s_logger.error("Not allowed to connect to the server: " + answer.getDetails());
+            logger.error("Not allowed to connect to the server: " + answer.getDetails());
             System.exit(1);
         }
         if (cancelled) {
-            s_logger.warn("Threw away a startup answer because we're reconnecting.");
+            logger.warn("Threw away a startup answer because we're reconnecting.");
             return;
         }
 
-        s_logger.info("Process agent startup answer, agent id = " + startup.getHostId());
+        logger.info("Process agent startup answer, agent id = " + startup.getHostId());
 
         setId(startup.getHostId());
         _pingInterval = (long)startup.getPingInterval() * 1000; // change to ms.
@@ -601,7 +602,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
 
         _ugentTaskPool.setKeepAliveTime(2 * _pingInterval, TimeUnit.MILLISECONDS);
 
-        s_logger.info("Startup Response Received: agent id = " + getId());
+        logger.info("Startup Response Received: agent id = " + getId());
     }
 
     protected void processRequest(final Request request, final Link link) {
@@ -616,18 +617,18 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 Answer answer;
                 try {
                     if (cmd.getContextParam("logid") != null) {
-                        MDC.put("logcontextid", cmd.getContextParam("logid"));
+                        ThreadContext.put("logcontextid", cmd.getContextParam("logid"));
                     }
-                    if (s_logger.isDebugEnabled()) {
+                    if (logger.isDebugEnabled()) {
                         if (!requestLogged) // ensures request is logged only once per method call
                         {
                             final String requestMsg = request.toString();
                             if (requestMsg != null) {
-                                s_logger.debug("Request:" + requestMsg);
+                                logger.debug("Request:" + requestMsg);
                             }
                             requestLogged = true;
                         }
-                        s_logger.debug("Processing command: " + cmd.toString());
+                        logger.debug("Processing command: " + cmd.toString());
                     }
 
                     if (cmd instanceof CronCommand) {
@@ -636,7 +637,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                         answer = new Answer(cmd, true, null);
                     } else if (cmd instanceof ShutdownCommand) {
                         final ShutdownCommand shutdown = (ShutdownCommand)cmd;
-                        s_logger.debug("Received shutdownCommand, due to: " + shutdown.getReason());
+                        logger.debug("Received shutdownCommand, due to: " + shutdown.getReason());
                         cancelTasks();
                         if (shutdown.isRemoveHost()) {
                             cleanupAgentZoneProperties();
@@ -644,11 +645,11 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                         _reconnectAllowed = false;
                         answer = new Answer(cmd, true, null);
                     } else if (cmd instanceof ReadyCommand && ((ReadyCommand)cmd).getDetails() != null) {
-                        s_logger.debug("Not ready to connect to mgt server: " + ((ReadyCommand)cmd).getDetails());
+                        logger.debug("Not ready to connect to mgt server: " + ((ReadyCommand)cmd).getDetails());
                         System.exit(1);
                         return;
                     } else if (cmd instanceof MaintainCommand) {
-                        s_logger.debug("Received maintainCommand, do not cancel current tasks");
+                        logger.debug("Received maintainCommand, do not cancel current tasks");
                         answer = new MaintainAnswer((MaintainCommand)cmd);
                     } else if (cmd instanceof AgentControlCommand) {
                         answer = null;
@@ -662,7 +663,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                         }
 
                         if (answer == null) {
-                            s_logger.warn("No handler found to process cmd: " + cmd.toString());
+                            logger.warn("No handler found to process cmd: " + cmd.toString());
                             answer = new AgentControlAnswer(cmd);
                         }
                     } else if (cmd instanceof SetupKeyStoreCommand && ((SetupKeyStoreCommand) cmd).isHandleByAgent()) {
@@ -685,12 +686,12 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                             _inProgress.decrementAndGet();
                         }
                         if (answer == null) {
-                            s_logger.debug("Response: unsupported command" + cmd.toString());
+                            logger.debug("Response: unsupported command" + cmd.toString());
                             answer = Answer.createUnsupportedCommandAnswer(cmd);
                         }
                     }
                 } catch (final Throwable th) {
-                    s_logger.warn("Caught: ", th);
+                    logger.warn("Caught: ", th);
                     final StringWriter writer = new StringWriter();
                     th.printStackTrace(new PrintWriter(writer));
                     answer = new Answer(cmd, false, writer.toString());
@@ -706,10 +707,10 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             }
             response = new Response(request, answers);
         } finally {
-            if (s_logger.isDebugEnabled()) {
+            if (logger.isDebugEnabled()) {
                 final String responseMsg = response.toString();
                 if (responseMsg != null) {
-                    s_logger.debug(response.toString());
+                    logger.debug(response.toString());
                 }
             }
 
@@ -717,7 +718,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 try {
                     link.send(response.toBytes());
                 } catch (final ClosedChannelException e) {
-                    s_logger.warn("Unable to send response: " + response.toString());
+                    logger.warn("Unable to send response: " + response.toString());
                 }
             }
         }
@@ -727,7 +728,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         final String keyStorePassword = cmd.getKeystorePassword();
         final long validityDays = cmd.getValidityDays();
 
-        s_logger.debug("Setting up agent keystore file and generating CSR");
+        logger.debug("Setting up agent keystore file and generating CSR");
 
         final File agentFile = PropertiesUtil.findConfigFile("agent.properties");
         if (agentFile == null) {
@@ -742,7 +743,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             _shell.setPersistentProperty(null, KeyStoreUtils.KS_PASSPHRASE_PROPERTY, storedPassword);
         }
 
-        Script script = new Script(_keystoreSetupPath, 300000, s_logger);
+        Script script = new Script(_keystoreSetupPath, 300000, logger);
         script.add(agentFile.getAbsolutePath());
         script.add(keyStoreFile);
         script.add(storedPassword);
@@ -767,7 +768,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         final String privateKey = cmd.getPrivateKey();
         final String caCertificates = cmd.getCaCertificates();
 
-        s_logger.debug("Importing received certificate to agent's keystore");
+        logger.debug("Importing received certificate to agent's keystore");
 
         final File agentFile = PropertiesUtil.findConfigFile("agent.properties");
         if (agentFile == null) {
@@ -781,13 +782,13 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         try {
             FileUtils.writeStringToFile(new File(certFile), certificate, Charset.defaultCharset());
             FileUtils.writeStringToFile(new File(caCertFile), caCertificates, Charset.defaultCharset());
-            s_logger.debug("Saved received client certificate to: " + certFile);
+            logger.debug("Saved received client certificate to: " + certFile);
         } catch (IOException e) {
             throw new CloudRuntimeException("Unable to save received agent client and ca certificates", e);
         }
 
         String ksPassphrase = _shell.getPersistentProperty(null, KeyStoreUtils.KS_PASSPHRASE_PROPERTY);
-        Script script = new Script(_keystoreCertImportPath, 300000, s_logger);
+        Script script = new Script(_keystoreCertImportPath, 300000, logger);
         script.add(agentFile.getAbsolutePath());
         script.add(ksPassphrase);
         script.add(keyStoreFile);
@@ -812,7 +813,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 _shell.setPersistentProperty(null, "host", newMSHosts);
                 _shell.setHosts(newMSHosts);
                 _shell.resetHostCounter();
-                s_logger.info("Processed new management server list: " + newMSHosts);
+                logger.info("Processed new management server list: " + newMSHosts);
             } catch (final Exception e) {
                 throw new CloudRuntimeException("Could not persist received management servers list", e);
             }
@@ -831,8 +832,8 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
 
     public void processResponse(final Response response, final Link link) {
         final Answer answer = response.getAnswer();
-        if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Received response: " + response.toString());
+        if (logger.isDebugEnabled()) {
+            logger.debug("Received response: " + response.toString());
         }
         if (answer instanceof StartupAnswer) {
             processStartupAnswer(answer, response, link);
@@ -844,7 +845,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 }
             }
         } else if (answer instanceof PingAnswer && (((PingAnswer) answer).isSendStartup()) && _reconnectAllowed) {
-            s_logger.info("Management server requested startup command to reinitialize the agent");
+            logger.info("Management server requested startup command to reinitialize the agent");
             sendStartup(link);
         } else {
             setLastPingResponseTime();
@@ -859,29 +860,29 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             NumbersUtil.enableHumanReadableSizes = humanReadable;
         }
 
-        s_logger.info("Processing agent ready command, agent id = " + ready.getHostId());
+        logger.info("Processing agent ready command, agent id = " + ready.getHostId());
         if (ready.getHostId() != null) {
             setId(ready.getHostId());
         }
 
         processManagementServerList(ready.getMsHostList(), ready.getLbAlgorithm(), ready.getLbCheckInterval());
 
-        s_logger.info("Ready command is processed for agent id = " + getId());
+        logger.info("Ready command is processed for agent id = " + getId());
     }
 
     public void processOtherTask(final Task task) {
         final Object obj = task.get();
         if (obj instanceof Response) {
             if (System.currentTimeMillis() - _lastPingResponseTime > _pingInterval * _shell.getPingRetries()) {
-                s_logger.error("Ping Interval has gone past " + _pingInterval * _shell.getPingRetries() + ". Won't reconnect to mgt server, as connection is still alive");
+                logger.error("Ping Interval has gone past " + _pingInterval * _shell.getPingRetries() + ". Won't reconnect to mgt server, as connection is still alive");
                 return;
             }
 
             final PingCommand ping = _resource.getCurrentStatus(getId());
             final Request request = new Request(_id, -1, ping, false);
             request.setSequence(getNextSequence());
-            if (s_logger.isDebugEnabled()) {
-                s_logger.debug("Sending ping: " + request.toString());
+            if (logger.isDebugEnabled()) {
+                logger.debug("Sending ping: " + request.toString());
             }
 
             try {
@@ -889,14 +890,14 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 //if i can send pingcommand out, means the link is ok
                 setLastPingResponseTime();
             } catch (final ClosedChannelException e) {
-                s_logger.warn("Unable to send request: " + request.toString());
+                logger.warn("Unable to send request: " + request.toString());
             }
 
         } else if (obj instanceof Request) {
             final Request req = (Request)obj;
             final Command command = req.getCommand();
             if (command.getContextParam("logid") != null) {
-                MDC.put("logcontextid", command.getContextParam("logid"));
+                ThreadContext.put("logcontextid", command.getContextParam("logid"));
             }
             Answer answer = null;
             _inProgress.incrementAndGet();
@@ -908,17 +909,17 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             if (answer != null) {
                 final Response response = new Response(req, answer);
 
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("Watch Sent: " + response.toString());
+                if (logger.isDebugEnabled()) {
+                    logger.debug("Watch Sent: " + response.toString());
                 }
                 try {
                     task.getLink().send(response.toBytes());
                 } catch (final ClosedChannelException e) {
-                    s_logger.warn("Unable to send response: " + response.toString());
+                    logger.warn("Unable to send response: " + response.toString());
                 }
             }
         } else {
-            s_logger.warn("Ignoring an unknown task");
+            logger.warn("Ignoring an unknown task");
         }
     }
 
@@ -958,7 +959,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 try {
                     listener.wait(timeoutInMilliseconds);
                 } catch (final InterruptedException e) {
-                    s_logger.warn("sendRequest is interrupted, exit waiting");
+                    logger.warn("sendRequest is interrupted, exit waiting");
                 }
             }
 
@@ -980,7 +981,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             try {
                 _link.send(request.toBytes());
             } catch (final ClosedChannelException e) {
-                s_logger.warn("Unable to post agent control request: " + request.toString());
+                logger.warn("Unable to post agent control request: " + request.toString());
                 throw new AgentControlChannelException("Unable to post agent control request due to " + e.getMessage());
             }
         } else {
@@ -1044,8 +1045,8 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
 
         @Override
         protected void runInContext() {
-            if (s_logger.isTraceEnabled()) {
-                s_logger.trace("Scheduling " + (_request instanceof Response ? "Ping" : "Watch Task"));
+            if (logger.isTraceEnabled()) {
+                logger.trace("Scheduling " + (_request instanceof Response ? "Ping" : "Watch Task"));
             }
             try {
                 if (_request instanceof Response) {
@@ -1054,7 +1055,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                     _link.schedule(new ServerHandler(Task.Type.OTHER, _link, _request));
                 }
             } catch (final ClosedChannelException e) {
-                s_logger.warn("Unable to schedule task because channel is closed");
+                logger.warn("Unable to schedule task because channel is closed");
             }
         }
     }
@@ -1064,7 +1065,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         protected volatile boolean cancelled = false;
 
         public StartupTask(final Link link) {
-            s_logger.debug("Startup task created");
+            logger.debug("Startup task created");
             _link = link;
         }
 
@@ -1074,7 +1075,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             if (!cancelled) {
                 cancelled = true;
                 _startupWait = _startupWaitDefault;
-                s_logger.debug("Startup task cancelled");
+                logger.debug("Startup task cancelled");
                 return super.cancel();
             }
             return true;
@@ -1083,8 +1084,8 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
         @Override
         protected synchronized void runInContext() {
             if (!cancelled) {
-                if (s_logger.isInfoEnabled()) {
-                    s_logger.info("The startup command is now cancelled");
+                if (logger.isInfoEnabled()) {
+                    logger.info("The startup command is now cancelled");
                 }
                 cancelled = true;
                 _startup = null;
@@ -1136,9 +1137,9 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                         _executor.submit(new AgentRequestHandler(getType(), getLink(), request));
                     }
                 } catch (final ClassNotFoundException e) {
-                    s_logger.error("Unable to find this request ");
+                    logger.error("Unable to find this request ");
                 } catch (final Exception e) {
-                    s_logger.error("Error parsing task", e);
+                    logger.error("Error parsing task", e);
                 }
             } else if (task.getType() == Task.Type.DISCONNECT) {
                 reconnect(task.getLink());
@@ -1166,7 +1167,7 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
             while (true) {
                 try {
                     if (_inProgress.get() == 0) {
-                        s_logger.debug("Running post certificate renewal task to restart services.");
+                        logger.debug("Running post certificate renewal task to restart services.");
 
                         // Let the resource perform any post certificate renewal cleanups
                         _resource.executeRequest(new PostCertificateRenewalCommand());
@@ -1191,12 +1192,12 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                         shell.launchNewAgent(resource);
                         return;
                     }
-                    if (s_logger.isTraceEnabled()) {
-                        s_logger.debug("Other tasks are in progress, will retry post certificate renewal command after few seconds");
+                    if (logger.isTraceEnabled()) {
+                        logger.debug("Other tasks are in progress, will retry post certificate renewal command after few seconds");
                     }
                     Thread.sleep(5000);
                 } catch (final Exception e) {
-                    s_logger.warn("Failed to execute post certificate renewal command:", e);
+                    logger.warn("Failed to execute post certificate renewal command:", e);
                     break;
                 }
             }
@@ -1214,8 +1215,8 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                 }
                 final String preferredHost  = msList[0];
                 final String connectedHost = _shell.getConnectedHost();
-                if (s_logger.isTraceEnabled()) {
-                    s_logger.trace("Running preferred host checker task, connected host=" + connectedHost + ", preferred host=" + preferredHost);
+                if (logger.isTraceEnabled()) {
+                    logger.trace("Running preferred host checker task, connected host=" + connectedHost + ", preferred host=" + preferredHost);
                 }
                 if (preferredHost != null && !preferredHost.equals(connectedHost) && _link != null) {
                     boolean isHostUp = true;
@@ -1223,20 +1224,20 @@ public class Agent implements HandlerFactory, IAgentControl, AgentStatusUpdater
                         socket.connect(new InetSocketAddress(preferredHost, _shell.getPort()), 5000);
                     } catch (final IOException e) {
                         isHostUp = false;
-                        if (s_logger.isTraceEnabled()) {
-                            s_logger.trace("Host: " + preferredHost + " is not reachable");
+                        if (logger.isTraceEnabled()) {
+                            logger.trace("Host: " + preferredHost + " is not reachable");
                         }
                     }
                     if (isHostUp && _link != null && _inProgress.get() == 0) {
-                        if (s_logger.isDebugEnabled()) {
-                            s_logger.debug("Preferred host " + preferredHost + " is found to be reachable, trying to reconnect");
+                        if (logger.isDebugEnabled()) {
+                            logger.debug("Preferred host " + preferredHost + " is found to be reachable, trying to reconnect");
                         }
                         _shell.resetHostCounter();
                         reconnect(_link);
                     }
                 }
             } catch (Throwable t) {
-                s_logger.error("Error caught while attempting to connect to preferred host", t);
+                logger.error("Error caught while attempting to connect to preferred host", t);
             }
         }
 
diff --git a/agent/src/main/java/com/cloud/agent/AgentShell.java b/agent/src/main/java/com/cloud/agent/AgentShell.java
index ef042496a37..4b2bd9a524f 100644
--- a/agent/src/main/java/com/cloud/agent/AgentShell.java
+++ b/agent/src/main/java/com/cloud/agent/AgentShell.java
@@ -34,8 +34,9 @@ import org.apache.commons.daemon.DaemonInitException;
 import org.apache.commons.lang.math.NumberUtils;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
-import org.apache.log4j.xml.DOMConfigurator;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.core.config.Configurator;
 
 import javax.naming.ConfigurationException;
 import java.io.File;
@@ -53,7 +54,7 @@ import java.util.Properties;
 import java.util.UUID;
 
 public class AgentShell implements IAgentShell, Daemon {
-    private static final Logger s_logger = Logger.getLogger(AgentShell.class.getName());
+    protected static Logger LOGGER = LogManager.getLogger(AgentShell.class);
 
     private final Properties _properties = new Properties();
     private final Map<String, Object> _cmdLineProperties = new HashMap<String, Object>();
@@ -221,7 +222,7 @@ public class AgentShell implements IAgentShell, Daemon {
             throw new ConfigurationException("Unable to find agent.properties.");
         }
 
-        s_logger.info("agent.properties found at " + file.getAbsolutePath());
+        LOGGER.info("agent.properties found at " + file.getAbsolutePath());
 
         try {
             PropertiesUtil.loadFromFile(_properties, file);
@@ -349,7 +350,7 @@ public class AgentShell implements IAgentShell, Daemon {
 
     @Override
     public void init(DaemonContext dc) throws DaemonInitException {
-        s_logger.debug("Initializing AgentShell from JSVC");
+        LOGGER.debug("Initializing AgentShell from JSVC");
         try {
             init(dc.getArguments());
         } catch (ConfigurationException ex) {
@@ -369,11 +370,11 @@ public class AgentShell implements IAgentShell, Daemon {
         }
 
         if (null != file) {
-            DOMConfigurator.configureAndWatch(file.getAbsolutePath());
+            Configurator.initialize(null, file.getAbsolutePath());
 
-            s_logger.info("Agent started");
+            LOGGER.info("Agent started");
         } else {
-            s_logger.error("Could not start the Agent because the absolute path of the \"log4j-cloud.xml\" file cannot be determined.");
+            LOGGER.error("Could not start the Agent because the absolute path of the \"log4j-cloud.xml\" file cannot be determined.");
         }
 
         final Class<?> c = this.getClass();
@@ -381,19 +382,19 @@ public class AgentShell implements IAgentShell, Daemon {
         if (_version == null) {
             throw new CloudRuntimeException("Unable to find the implementation version of this agent");
         }
-        s_logger.info("Implementation Version is " + _version);
+        LOGGER.info("Implementation Version is " + _version);
 
         loadProperties();
         parseCommand(args);
 
-        if (s_logger.isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             List<String> properties = Collections.list((Enumeration<String>)_properties.propertyNames());
             for (String property : properties) {
-                s_logger.debug("Found property: " + property);
+                LOGGER.debug("Found property: " + property);
             }
         }
 
-        s_logger.info("Defaulting to using properties file for storage");
+        LOGGER.info("Defaulting to using properties file for storage");
         _storage = new PropertiesStorage();
         _storage.configure("Storage", new HashMap<String, Object>());
 
@@ -403,14 +404,14 @@ public class AgentShell implements IAgentShell, Daemon {
             _properties.put(cmdLineProp.getKey(), cmdLineProp.getValue());
         }
 
-        s_logger.info("Defaulting to the constant time backoff algorithm");
+        LOGGER.info("Defaulting to the constant time backoff algorithm");
         _backoff = new ConstantTimeBackoff();
         _backoff.configure("ConstantTimeBackoff", new HashMap<String, Object>());
     }
 
     private void launchAgent() throws ConfigurationException {
         String resourceClassNames = AgentPropertiesFileHandler.getPropertyValue(AgentProperties.RESOURCE);
-        s_logger.trace("resource=" + resourceClassNames);
+        LOGGER.trace("resource=" + resourceClassNames);
         if (resourceClassNames != null) {
             launchAgentFromClassInfo(resourceClassNames);
             return;
@@ -440,10 +441,10 @@ public class AgentShell implements IAgentShell, Daemon {
     private void launchAgentFromTypeInfo() throws ConfigurationException {
         String typeInfo = getProperty(null, "type");
         if (typeInfo == null) {
-            s_logger.error("Unable to retrieve the type");
+            LOGGER.error("Unable to retrieve the type");
             throw new ConfigurationException("Unable to retrieve the type of this agent.");
         }
-        s_logger.trace("Launching agent based on type=" + typeInfo);
+        LOGGER.trace("Launching agent based on type=" + typeInfo);
     }
 
     public void launchNewAgent(ServerResource resource) throws ConfigurationException {
@@ -477,17 +478,17 @@ public class AgentShell implements IAgentShell, Daemon {
             }
 
             if (ipv6disabled) {
-                s_logger.info("Preferring IPv4 address family for agent connection");
+                LOGGER.info("Preferring IPv4 address family for agent connection");
                 System.setProperty("java.net.preferIPv4Stack", "true");
                 if (ipv6prefer) {
-                    s_logger.info("ipv6prefer is set to true, but ipv6disabled is false. Not preferring IPv6 for agent connection");
+                    LOGGER.info("ipv6prefer is set to true, but ipv6disabled is false. Not preferring IPv6 for agent connection");
                 }
             } else {
                 if (ipv6prefer) {
-                    s_logger.info("Preferring IPv6 address family for agent connection");
+                    LOGGER.info("Preferring IPv6 address family for agent connection");
                     System.setProperty("java.net.preferIPv6Addresses", "true");
                 } else {
-                    s_logger.info("Using default Java settings for IPv6 preference for agent connection");
+                    LOGGER.info("Using default Java settings for IPv6 preference for agent connection");
                 }
             }
 
@@ -505,7 +506,7 @@ public class AgentShell implements IAgentShell, Daemon {
             String pidDir = getProperty(null, "piddir");
 
             final String run = "agent." + instance + "pid";
-            s_logger.debug("Checking to see if " + run + " exists.");
+            LOGGER.debug("Checking to see if " + run + " exists.");
             ProcessUtil.pidCheck(pidDir, run);
 
             launchAgent();
@@ -514,11 +515,11 @@ public class AgentShell implements IAgentShell, Daemon {
                 while (!_exit)
                     Thread.sleep(1000);
             } catch (InterruptedException e) {
-                s_logger.debug("[ignored] AgentShell was interrupted.");
+                LOGGER.debug("[ignored] AgentShell was interrupted.");
             }
 
         } catch (final Exception e) {
-            s_logger.error("Unable to start agent: ", e);
+            LOGGER.error("Unable to start agent: ", e);
             System.exit(ExitStatus.Error.value());
         }
     }
@@ -535,7 +536,7 @@ public class AgentShell implements IAgentShell, Daemon {
 
     public static void main(String[] args) {
         try {
-            s_logger.debug("Initializing AgentShell from main");
+            LOGGER.debug("Initializing AgentShell from main");
             AgentShell shell = new AgentShell();
             shell.init(args);
             shell.start();
diff --git a/agent/src/main/java/com/cloud/agent/dao/impl/PropertiesStorage.java b/agent/src/main/java/com/cloud/agent/dao/impl/PropertiesStorage.java
index 87610c29f34..b4b22fa8d16 100644
--- a/agent/src/main/java/com/cloud/agent/dao/impl/PropertiesStorage.java
+++ b/agent/src/main/java/com/cloud/agent/dao/impl/PropertiesStorage.java
@@ -24,7 +24,8 @@ import java.util.Map;
 import java.util.Properties;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import com.cloud.agent.dao.StorageComponent;
 import com.cloud.utils.PropertiesUtil;
@@ -36,7 +37,7 @@ import com.cloud.utils.PropertiesUtil;
  *         path to the properties _file | String | db/db.properties || * }
  **/
 public class PropertiesStorage implements StorageComponent {
-    private static final Logger s_logger = Logger.getLogger(PropertiesStorage.class);
+    protected Logger logger = LogManager.getLogger(getClass());
     Properties _properties = new Properties();
     File _file;
     String _name;
@@ -49,7 +50,7 @@ public class PropertiesStorage implements StorageComponent {
     @Override
     public synchronized void persist(String key, String value) {
         if (!loadFromFile(_file)) {
-            s_logger.error("Failed to load changes and then write to them");
+            logger.error("Failed to load changes and then write to them");
         }
         _properties.setProperty(key, value);
         FileOutputStream output = null;
@@ -59,7 +60,7 @@ public class PropertiesStorage implements StorageComponent {
             output.flush();
             output.close();
         } catch (IOException e) {
-            s_logger.error("Uh-oh: ", e);
+            logger.error("Uh-oh: ", e);
         } finally {
             IOUtils.closeQuietly(output);
         }
@@ -70,10 +71,10 @@ public class PropertiesStorage implements StorageComponent {
             PropertiesUtil.loadFromFile(_properties, file);
             _file = file;
         } catch (FileNotFoundException e) {
-            s_logger.error("How did we get here? ", e);
+            logger.error("How did we get here? ", e);
             return false;
         } catch (IOException e) {
-            s_logger.error("IOException: ", e);
+            logger.error("IOException: ", e);
             return false;
         }
         return true;
@@ -92,13 +93,13 @@ public class PropertiesStorage implements StorageComponent {
             file = new File(path);
             try {
                 if (!file.createNewFile()) {
-                    s_logger.error(String.format("Unable to create _file: %s", file.getAbsolutePath()));
+                    logger.error(String.format("Unable to create _file: %s", file.getAbsolutePath()));
                     return false;
                 }
             } catch (IOException e) {
-                s_logger.error(String.format("Unable to create file: %s", file.getAbsolutePath()));
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(String.format("IOException while trying to create file: %s", file.getAbsolutePath()), e);
+                logger.error(String.format("Unable to create file: %s", file.getAbsolutePath()));
+                if (logger.isDebugEnabled()) {
+                    logger.debug(String.format("IOException while trying to create file: %s", file.getAbsolutePath()), e);
                 }
                 return false;
             }
diff --git a/agent/src/main/java/com/cloud/agent/dhcp/DhcpProtocolParserServer.java b/agent/src/main/java/com/cloud/agent/dhcp/DhcpProtocolParserServer.java
index 0ee9fd6860d..00488f94382 100644
--- a/agent/src/main/java/com/cloud/agent/dhcp/DhcpProtocolParserServer.java
+++ b/agent/src/main/java/com/cloud/agent/dhcp/DhcpProtocolParserServer.java
@@ -25,12 +25,13 @@ import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.log4j.Logger;
 
 import com.cloud.utils.concurrency.NamedThreadFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 public class DhcpProtocolParserServer extends Thread {
-    private static final Logger s_logger = Logger.getLogger(DhcpProtocolParserServer.class);;
+    protected Logger logger = LogManager.getLogger(DhcpProtocolParserServer.class);;
     protected ExecutorService _executor;
     private int dhcpServerPort = 67;
     private int bufferSize = 300;
@@ -54,7 +55,7 @@ public class DhcpProtocolParserServer extends Thread {
                     dhcpSocket.receive(dgp);
                 }
             } catch (IOException e) {
-                s_logger.debug(e.getMessage());
+                logger.debug(e.getMessage());
             }
         }
     }
diff --git a/agent/src/main/java/com/cloud/agent/mockvm/MockVmMgr.java b/agent/src/main/java/com/cloud/agent/mockvm/MockVmMgr.java
index b155cb725b1..1e6fefa4818 100644
--- a/agent/src/main/java/com/cloud/agent/mockvm/MockVmMgr.java
+++ b/agent/src/main/java/com/cloud/agent/mockvm/MockVmMgr.java
@@ -22,14 +22,15 @@ import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.vm.VirtualMachine.State;
 
 public class MockVmMgr implements VmMgr {
-    private static final Logger s_logger = Logger.getLogger(MockVmMgr.class);
+    protected Logger logger = LogManager.getLogger(getClass());
 
     private static final int DEFAULT_DOM0_MEM_MB = 128;
     private static final Random randSeed = new Random();
@@ -56,14 +57,14 @@ public class MockVmMgr implements VmMgr {
     public String startVM(String vmName, String vnetId, String gateway, String dns, String privateIP, String privateMac, String privateMask, String publicIP,
         String publicMac, String publicMask, int cpuCount, int cpuUtilization, long ramSize, String localPath, String vncPassword) {
 
-        if (s_logger.isInfoEnabled()) {
+        if (logger.isInfoEnabled()) {
             StringBuffer sb = new StringBuffer();
             sb.append("Start VM. name: " + vmName + ", vnet: " + vnetId + ", dns: " + dns);
             sb.append(", privateIP: " + privateIP + ", privateMac: " + privateMac + ", privateMask: " + privateMask);
             sb.append(", publicIP: " + publicIP + ", publicMac: " + publicMac + ", publicMask: " + publicMask);
             sb.append(", cpu count: " + cpuCount + ", cpuUtilization: " + cpuUtilization + ", ram : " + ramSize);
             sb.append(", localPath: " + localPath);
-            s_logger.info(sb.toString());
+            logger.info(sb.toString());
         }
 
         synchronized (this) {
@@ -86,8 +87,8 @@ public class MockVmMgr implements VmMgr {
 
     @Override
     public String stopVM(String vmName, boolean force) {
-        if (s_logger.isInfoEnabled())
-            s_logger.info("Stop VM. name: " + vmName);
+        if (logger.isInfoEnabled())
+            logger.info("Stop VM. name: " + vmName);
 
         synchronized (this) {
             MockVm vm = vms.get(vmName);
@@ -102,8 +103,8 @@ public class MockVmMgr implements VmMgr {
 
     @Override
     public String rebootVM(String vmName) {
-        if (s_logger.isInfoEnabled())
-            s_logger.info("Reboot VM. name: " + vmName);
+        if (logger.isInfoEnabled())
+            logger.info("Reboot VM. name: " + vmName);
 
         synchronized (this) {
             MockVm vm = vms.get(vmName);
@@ -115,8 +116,8 @@ public class MockVmMgr implements VmMgr {
 
     @Override
     public boolean migrate(String vmName, String params) {
-        if (s_logger.isInfoEnabled())
-            s_logger.info("Migrate VM. name: " + vmName);
+        if (logger.isInfoEnabled())
+            logger.info("Migrate VM. name: " + vmName);
 
         synchronized (this) {
             MockVm vm = vms.get(vmName);
@@ -258,13 +259,13 @@ public class MockVmMgr implements VmMgr {
             vm = vms.get(vmName);
             if (vm == null) {
                 if (ramSize > getHostFreeMemory()) {
-                    s_logger.debug("host is out of memory");
+                    logger.debug("host is out of memory");
                     throw new CloudRuntimeException("Host is out of Memory");
                 }
 
                 int vncPort = allocVncPort();
                 if (vncPort < 0) {
-                    s_logger.debug("Unable to allocate VNC port");
+                    logger.debug("Unable to allocate VNC port");
                     throw new CloudRuntimeException("Unable to allocate vnc port");
                 }
 
diff --git a/agent/src/main/java/com/cloud/agent/properties/AgentPropertiesFileHandler.java b/agent/src/main/java/com/cloud/agent/properties/AgentPropertiesFileHandler.java
index 602aa1efcb0..614848fb96e 100644
--- a/agent/src/main/java/com/cloud/agent/properties/AgentPropertiesFileHandler.java
+++ b/agent/src/main/java/com/cloud/agent/properties/AgentPropertiesFileHandler.java
@@ -22,7 +22,8 @@ import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.converters.IntegerConverter;
 import org.apache.commons.beanutils.converters.LongConverter;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * This class provides a facility to read the agent's properties file and get
@@ -31,7 +32,7 @@ import org.apache.log4j.Logger;
  */
 public class AgentPropertiesFileHandler {
 
-    private static final Logger logger = Logger.getLogger(AgentPropertiesFileHandler.class);
+    protected static Logger LOGGER = LogManager.getLogger(AgentPropertiesFileHandler.class);
 
     /**
      * This method reads the property in the agent.properties file.
@@ -47,7 +48,7 @@ public class AgentPropertiesFileHandler {
         File agentPropertiesFile = PropertiesUtil.findConfigFile(KeyStoreUtils.AGENT_PROPSFILE);
 
         if (agentPropertiesFile == null) {
-            logger.debug(String.format("File [%s] was not found, we will use default defined values. Property [%s]: [%s].", KeyStoreUtils.AGENT_PROPSFILE, name, defaultValue));
+            LOGGER.debug(String.format("File [%s] was not found, we will use default defined values. Property [%s]: [%s].", KeyStoreUtils.AGENT_PROPSFILE, name, defaultValue));
 
             return defaultValue;
         }
@@ -55,7 +56,7 @@ public class AgentPropertiesFileHandler {
         try {
             String configValue = PropertiesUtil.loadFromFile(agentPropertiesFile).getProperty(name);
             if (StringUtils.isBlank(configValue)) {
-                logger.debug(String.format("Property [%s] has empty or null value. Using default value [%s].", name, defaultValue));
+                LOGGER.debug(String.format("Property [%s] has empty or null value. Using default value [%s].", name, defaultValue));
                 return defaultValue;
             }
 
@@ -67,11 +68,11 @@ public class AgentPropertiesFileHandler {
                 ConvertUtils.register(new LongConverter(defaultValue), Long.class);
             }
 
-            logger.debug(String.format("Property [%s] was altered. Now using the value [%s].", name, configValue));
+            LOGGER.debug(String.format("Property [%s] was altered. Now using the value [%s].", name, configValue));
             return (T)ConvertUtils.convert(configValue, property.getTypeClass());
 
         } catch (IOException ex) {
-            logger.debug(String.format("Failed to get property [%s]. Using default value [%s].", name, defaultValue), ex);
+            LOGGER.debug(String.format("Failed to get property [%s]. Using default value [%s].", name, defaultValue), ex);
         }
 
         return defaultValue;
diff --git a/agent/src/main/java/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java b/agent/src/main/java/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java
index 5412c347012..f0407a12988 100644
--- a/agent/src/main/java/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java
+++ b/agent/src/main/java/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java
@@ -34,7 +34,6 @@ import javax.naming.ConfigurationException;
 
 import com.cloud.agent.api.proxy.AllowConsoleAccessCommand;
 import org.apache.cloudstack.managed.context.ManagedContextRunnable;
-import org.apache.log4j.Logger;
 
 import com.cloud.agent.Agent.ExitStatus;
 import com.cloud.agent.api.AgentControlAnswer;
@@ -81,7 +80,6 @@ import com.google.gson.Gson;
  *
  */
 public class ConsoleProxyResource extends ServerResourceBase implements ServerResource {
-    static final Logger s_logger = Logger.getLogger(ConsoleProxyResource.class);
 
     private final Properties properties = new Properties();
     private Thread consoleProxyMain = null;
@@ -101,7 +99,7 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
         } else if (cmd instanceof WatchConsoleProxyLoadCommand) {
             return execute((WatchConsoleProxyLoadCommand)cmd);
         } else if (cmd instanceof ReadyCommand) {
-            s_logger.info("Receive ReadyCommand, response with ReadyAnswer");
+            logger.info("Receive ReadyCommand, response with ReadyAnswer");
             return new ReadyAnswer((ReadyCommand)cmd);
         } else if (cmd instanceof CheckHealthCommand) {
             return new CheckHealthAnswer((CheckHealthCommand)cmd, true);
@@ -123,13 +121,13 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
             return new Answer(cmd);
         } catch (SecurityException | NoSuchMethodException | ClassNotFoundException | InvocationTargetException | IllegalAccessException e) {
             String errorMsg = "Unable to add allowed session due to: " + e.getMessage();
-            s_logger.error(errorMsg, e);
+            logger.error(errorMsg, e);
             return new Answer(cmd, false, errorMsg);
         }
     }
 
     private Answer execute(StartConsoleProxyAgentHttpHandlerCommand cmd) {
-        s_logger.info("Invoke launchConsoleProxy() in responding to StartConsoleProxyAgentHttpHandlerCommand");
+        logger.info("Invoke launchConsoleProxy() in responding to StartConsoleProxyAgentHttpHandlerCommand");
         launchConsoleProxy(cmd.getKeystoreBits(), cmd.getKeystorePassword(), cmd.getEncryptorPassword(), cmd.isSourceIpCheckEnabled());
         return new Answer(cmd);
     }
@@ -140,7 +138,7 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
         {
             out.write("0");
         } catch (IOException e) {
-            s_logger.warn("Unable to disable rp_filter");
+            logger.warn("Unable to disable rp_filter");
         }
     }
 
@@ -177,12 +175,12 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
                 try {
                     is.close();
                 } catch (final IOException e) {
-                    s_logger.warn("Exception when closing , console proxy address : " + proxyManagementIp);
+                    logger.warn("Exception when closing , console proxy address : " + proxyManagementIp);
                     success = false;
                 }
             }
         } catch (final IOException e) {
-            s_logger.warn("Unable to open console proxy command port url, console proxy address : " + proxyManagementIp);
+            logger.warn("Unable to open console proxy command port url, console proxy address : " + proxyManagementIp);
             success = false;
         }
 
@@ -227,14 +225,14 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
         if (eth1Ip != null) {
             params.put("private.network.device", "eth1");
         } else {
-            s_logger.info("eth1ip parameter has not been configured, assuming that we are not inside a system vm");
+            logger.info("eth1ip parameter has not been configured, assuming that we are not inside a system vm");
         }
 
         String eth2ip = (String)params.get("eth2ip");
         if (eth2ip != null) {
             params.put("public.network.device", "eth2");
         } else {
-            s_logger.info("eth2ip parameter is not found, assuming that we are not inside a system vm");
+            logger.info("eth2ip parameter is not found, assuming that we are not inside a system vm");
         }
 
         super.configure(name, params);
@@ -262,7 +260,7 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
                 }
                 String internalDns1 = (String) params.get("internaldns1");
                 if (internalDns1 == null) {
-                    s_logger.warn("No DNS entry found during configuration of ConsoleProxy");
+                    logger.warn("No DNS entry found during configuration of ConsoleProxy");
                 } else {
                     addRouteToInternalIpOrCidr(localGateway, eth1Ip, eth1Mask, internalDns1);
                 }
@@ -280,20 +278,20 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
             disableRpFilter();
         }
 
-        if (s_logger.isInfoEnabled())
-            s_logger.info("Receive proxyVmId in ConsoleProxyResource configuration as " + proxyVmId);
+        if (logger.isInfoEnabled())
+            logger.info("Receive proxyVmId in ConsoleProxyResource configuration as " + proxyVmId);
 
         return true;
     }
 
     private void addRouteToInternalIpOrCidr(String localgw, String eth1ip, String eth1mask, String destIpOrCidr) {
-        s_logger.debug("addRouteToInternalIp: localgw=" + localgw + ", eth1ip=" + eth1ip + ", eth1mask=" + eth1mask + ",destIp=" + destIpOrCidr);
+        logger.debug("addRouteToInternalIp: localgw=" + localgw + ", eth1ip=" + eth1ip + ", eth1mask=" + eth1mask + ",destIp=" + destIpOrCidr);
         if (destIpOrCidr == null) {
-            s_logger.debug("addRouteToInternalIp: destIp is null");
+            logger.debug("addRouteToInternalIp: destIp is null");
             return;
         }
         if (!NetUtils.isValidIp4(destIpOrCidr) && !NetUtils.isValidIp4Cidr(destIpOrCidr)) {
-            s_logger.warn(" destIp is not a valid ip address or cidr destIp=" + destIpOrCidr);
+            logger.warn(" destIp is not a valid ip address or cidr destIp=" + destIpOrCidr);
             return;
         }
         boolean inSameSubnet = false;
@@ -301,27 +299,27 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
             if (eth1ip != null && eth1mask != null) {
                 inSameSubnet = NetUtils.sameSubnet(eth1ip, destIpOrCidr, eth1mask);
             } else {
-                s_logger.warn("addRouteToInternalIp: unable to determine same subnet: eth1ip=" + eth1ip + ", dest ip=" + destIpOrCidr + ", eth1mask=" + eth1mask);
+                logger.warn("addRouteToInternalIp: unable to determine same subnet: eth1ip=" + eth1ip + ", dest ip=" + destIpOrCidr + ", eth1mask=" + eth1mask);
             }
         } else {
             inSameSubnet = NetUtils.isNetworkAWithinNetworkB(destIpOrCidr, NetUtils.ipAndNetMaskToCidr(eth1ip, eth1mask));
         }
         if (inSameSubnet) {
-            s_logger.debug("addRouteToInternalIp: dest ip " + destIpOrCidr + " is in the same subnet as eth1 ip " + eth1ip);
+            logger.debug("addRouteToInternalIp: dest ip " + destIpOrCidr + " is in the same subnet as eth1 ip " + eth1ip);
             return;
         }
-        Script command = new Script("/bin/bash", s_logger);
+        Script command = new Script("/bin/bash", logger);
         command.add("-c");
         command.add("ip route delete " + destIpOrCidr);
         command.execute();
-        command = new Script("/bin/bash", s_logger);
+        command = new Script("/bin/bash", logger);
         command.add("-c");
         command.add("ip route add " + destIpOrCidr + " via " + localgw);
         String result = command.execute();
         if (result != null) {
-            s_logger.warn("Error in configuring route to internal ip err=" + result);
+            logger.warn("Error in configuring route to internal ip err=" + result);
         } else {
-            s_logger.debug("addRouteToInternalIp: added route to internal ip=" + destIpOrCidr + " via " + localgw);
+            logger.debug("addRouteToInternalIp: added route to internal ip=" + destIpOrCidr + " via " + localgw);
         }
     }
 
@@ -332,36 +330,36 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
 
     private void launchConsoleProxy(final byte[] ksBits, final String ksPassword, final String encryptorPassword, final Boolean isSourceIpCheckEnabled) {
         final Object resource = this;
-        s_logger.info("Building class loader for com.cloud.consoleproxy.ConsoleProxy");
+        logger.info("Building class loader for com.cloud.consoleproxy.ConsoleProxy");
         if (consoleProxyMain == null) {
-            s_logger.info("Running com.cloud.consoleproxy.ConsoleProxy with encryptor password=" + encryptorPassword);
+            logger.info("Running com.cloud.consoleproxy.ConsoleProxy with encryptor password=" + encryptorPassword);
             consoleProxyMain = new Thread(new ManagedContextRunnable() {
                 @Override
                 protected void runInContext() {
                     try {
                         Class<?> consoleProxyClazz = Class.forName("com.cloud.consoleproxy.ConsoleProxy");
                         try {
-                            s_logger.info("Invoke startWithContext()");
+                            logger.info("Invoke startWithContext()");
                             Method method = consoleProxyClazz.getMethod("startWithContext", Properties.class, Object.class, byte[].class, String.class, String.class, Boolean.class);
                             method.invoke(null, properties, resource, ksBits, ksPassword, encryptorPassword, isSourceIpCheckEnabled);
                         } catch (SecurityException e) {
-                            s_logger.error("Unable to launch console proxy due to SecurityException", e);
+                            logger.error("Unable to launch console proxy due to SecurityException", e);
                             System.exit(ExitStatus.Error.value());
                         } catch (NoSuchMethodException e) {
-                            s_logger.error("Unable to launch console proxy due to NoSuchMethodException", e);
+                            logger.error("Unable to launch console proxy due to NoSuchMethodException", e);
                             System.exit(ExitStatus.Error.value());
                         } catch (IllegalArgumentException e) {
-                            s_logger.error("Unable to launch console proxy due to IllegalArgumentException", e);
+                            logger.error("Unable to launch console proxy due to IllegalArgumentException", e);
                             System.exit(ExitStatus.Error.value());
                         } catch (IllegalAccessException e) {
-                            s_logger.error("Unable to launch console proxy due to IllegalAccessException", e);
+                            logger.error("Unable to launch console proxy due to IllegalAccessException", e);
                             System.exit(ExitStatus.Error.value());
                         } catch (InvocationTargetException e) {
-                            s_logger.error("Unable to launch console proxy due to InvocationTargetException " + e.getTargetException().toString(), e);
+                            logger.error("Unable to launch console proxy due to InvocationTargetException " + e.getTargetException().toString(), e);
                             System.exit(ExitStatus.Error.value());
                         }
                     } catch (final ClassNotFoundException e) {
-                        s_logger.error("Unable to launch console proxy due to ClassNotFoundException");
+                        logger.error("Unable to launch console proxy due to ClassNotFoundException");
                         System.exit(ExitStatus.Error.value());
                     }
                 }
@@ -369,7 +367,7 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
             consoleProxyMain.setDaemon(true);
             consoleProxyMain.start();
         } else {
-            s_logger.info("com.cloud.consoleproxy.ConsoleProxy is already running");
+            logger.info("com.cloud.consoleproxy.ConsoleProxy is already running");
 
             try {
                 Class<?> consoleProxyClazz = Class.forName("com.cloud.consoleproxy.ConsoleProxy");
@@ -378,22 +376,22 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
                 methodSetup = consoleProxyClazz.getMethod("setIsSourceIpCheckEnabled", Boolean.class);
                 methodSetup.invoke(null, isSourceIpCheckEnabled);
             } catch (SecurityException e) {
-                s_logger.error("Unable to launch console proxy due to SecurityException", e);
+                logger.error("Unable to launch console proxy due to SecurityException", e);
                 System.exit(ExitStatus.Error.value());
             } catch (NoSuchMethodException e) {
-                s_logger.error("Unable to launch console proxy due to NoSuchMethodException", e);
+                logger.error("Unable to launch console proxy due to NoSuchMethodException", e);
                 System.exit(ExitStatus.Error.value());
             } catch (IllegalArgumentException e) {
-                s_logger.error("Unable to launch console proxy due to IllegalArgumentException", e);
+                logger.error("Unable to launch console proxy due to IllegalArgumentException", e);
                 System.exit(ExitStatus.Error.value());
             } catch (IllegalAccessException e) {
-                s_logger.error("Unable to launch console proxy due to IllegalAccessException", e);
+                logger.error("Unable to launch console proxy due to IllegalAccessException", e);
                 System.exit(ExitStatus.Error.value());
             } catch (InvocationTargetException e) {
-                s_logger.error("Unable to launch console proxy due to InvocationTargetException " + e.getTargetException().toString(), e);
+                logger.error("Unable to launch console proxy due to InvocationTargetException " + e.getTargetException().toString(), e);
                 System.exit(ExitStatus.Error.value());
             } catch (final ClassNotFoundException e) {
-                s_logger.error("Unable to launch console proxy due to ClassNotFoundException", e);
+                logger.error("Unable to launch console proxy due to ClassNotFoundException", e);
                 System.exit(ExitStatus.Error.value());
             }
         }
@@ -420,10 +418,10 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
                 result.setTunnelUrl(authAnswer.getTunnelUrl());
                 result.setTunnelSession(authAnswer.getTunnelSession());
             } else {
-                s_logger.error("Authentication failed for vm: " + vmId + " with sid: " + sid);
+                logger.error("Authentication failed for vm: " + vmId + " with sid: " + sid);
             }
         } catch (AgentControlChannelException e) {
-            s_logger.error("Unable to send out console access authentication request due to " + e.getMessage(), e);
+            logger.error("Unable to send out console access authentication request due to " + e.getMessage(), e);
         }
 
         return new Gson().toJson(result);
@@ -434,17 +432,17 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
         try {
             getAgentControl().postRequest(cmd);
 
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Report proxy load info, proxy : " + proxyVmId + ", load: " + gsonLoadInfo);
+            if (logger.isDebugEnabled())
+                logger.debug("Report proxy load info, proxy : " + proxyVmId + ", load: " + gsonLoadInfo);
         } catch (AgentControlChannelException e) {
-            s_logger.error("Unable to send out load info due to " + e.getMessage(), e);
+            logger.error("Unable to send out load info due to " + e.getMessage(), e);
         }
     }
 
     public void ensureRoute(String address) {
         if (localGateway != null) {
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Ensure route for " + address + " via " + localGateway);
+            if (logger.isDebugEnabled())
+                logger.debug("Ensure route for " + address + " via " + localGateway);
 
             // this method won't be called in high frequency, serialize access
             // to script execution
@@ -452,7 +450,7 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe
                 try {
                     addRouteToInternalIpOrCidr(localGateway, eth1Ip, eth1Mask, address);
                 } catch (Throwable e) {
-                    s_logger.warn("Unexpected exception while adding internal route to " + address, e);
+                    logger.warn("Unexpected exception while adding internal route to " + address, e);
                 }
             }
         }
diff --git a/api/src/main/java/com/cloud/agent/api/Command.java b/api/src/main/java/com/cloud/agent/api/Command.java
index c873139099c..eb979c0060b 100644
--- a/api/src/main/java/com/cloud/agent/api/Command.java
+++ b/api/src/main/java/com/cloud/agent/api/Command.java
@@ -20,6 +20,8 @@ import java.util.HashMap;
 import java.util.Map;
 
 import com.cloud.agent.api.LogLevel.Log4jLevel;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * implemented by classes that extends the Command class. Command specifies
@@ -27,6 +29,8 @@ import com.cloud.agent.api.LogLevel.Log4jLevel;
  */
 public abstract class Command {
 
+    protected transient Logger logger = LogManager.getLogger(getClass());
+
     public static enum OnError {
         Continue, Stop
     }
diff --git a/api/src/main/java/com/cloud/agent/api/LogLevel.java b/api/src/main/java/com/cloud/agent/api/LogLevel.java
index a8da272f39f..136cb6d7228 100644
--- a/api/src/main/java/com/cloud/agent/api/LogLevel.java
+++ b/api/src/main/java/com/cloud/agent/api/LogLevel.java
@@ -23,8 +23,8 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Logger;
 
 /**
  */
@@ -41,7 +41,7 @@ public @interface LogLevel {
         }
 
         public boolean enabled(Logger logger) {
-            return _level != Level.OFF && logger.isEnabledFor(_level);
+            return _level != Level.OFF && logger.isEnabled(_level);
         }
     }
 
diff --git a/api/src/main/java/com/cloud/agent/api/storage/OVFHelper.java b/api/src/main/java/com/cloud/agent/api/storage/OVFHelper.java
index d4daf0e4270..6396e3deb72 100644
--- a/api/src/main/java/com/cloud/agent/api/storage/OVFHelper.java
+++ b/api/src/main/java/com/cloud/agent/api/storage/OVFHelper.java
@@ -39,7 +39,8 @@ import org.apache.cloudstack.utils.security.ParserUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.math.NumberUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -63,7 +64,7 @@ import com.cloud.utils.compression.CompressionUtil;
 import com.cloud.utils.exception.CloudRuntimeException;
 
 public class OVFHelper {
-    private static final Logger s_logger = Logger.getLogger(OVFHelper.class);
+    protected Logger logger = LogManager.getLogger(getClass());
 
     private final OVFParser ovfParser;
 
@@ -118,7 +119,7 @@ public class OVFHelper {
         boolean password = StringUtils.isNotBlank(passStr) && passStr.equalsIgnoreCase("true");
         String label = ovfParser.getChildNodeValue(node, "Label");
         String description = ovfParser.getChildNodeValue(node, "Description");
-        s_logger.debug("Creating OVF property index " + index + (category == null ? "" : " for category " + category)
+        logger.debug("Creating OVF property index " + index + (category == null ? "" : " for category " + category)
                 + " with key = " + key);
         return new OVFPropertyTO(key, type, value, qualifiers, userConfigurable,
                 label, description, password, index, category);
@@ -151,7 +152,7 @@ public class OVFHelper {
                     if (child.getNodeName().equalsIgnoreCase("Category") ||
                             child.getNodeName().endsWith(":Category")) {
                         lastCategoryFound = child.getTextContent();
-                        s_logger.info("Category found " + lastCategoryFound);
+                        logger.info("Category found " + lastCategoryFound);
                     } else if (child.getNodeName().equalsIgnoreCase("Property") ||
                             child.getNodeName().endsWith(":Property")) {
                         OVFPropertyTO prop = createOVFPropertyFromNode(child, propertyIndex, lastCategoryFound);
@@ -249,13 +250,13 @@ public class OVFHelper {
         int diskNumber = 0;
         for (OVFVirtualHardwareItemTO diskItem : diskHardwareItems) {
             if (StringUtils.isBlank(diskItem.getHostResource())) {
-                s_logger.error("Missing disk information for hardware item " + diskItem.getElementName() + " " + diskItem.getInstanceId());
+                logger.error("Missing disk information for hardware item " + diskItem.getElementName() + " " + diskItem.getInstanceId());
                 continue;
             }
             String diskId = extractDiskIdFromDiskHostResource(diskItem.getHostResource());
             OVFDisk diskDefinition = getDiskDefinitionFromDiskId(diskId, disks);
             if (diskDefinition == null) {
-                s_logger.error("Missing disk definition for disk ID " + diskId);
+                logger.error("Missing disk definition for disk ID " + diskId);
             }
             OVFFile fileDefinition = getFileDefinitionFromDiskDefinition(diskDefinition._fileRef, files);
             DatadiskTO datadiskTO = generateDiskTO(fileDefinition, diskDefinition, ovfParentPath, diskNumber, diskItem);
@@ -277,7 +278,7 @@ public class OVFHelper {
         if (StringUtils.isNotBlank(path)) {
             File f = new File(path);
             if (!f.exists() || f.isDirectory()) {
-                s_logger.error("One of the attached disk or iso does not exists " + path);
+                logger.error("One of the attached disk or iso does not exists " + path);
                 throw new InternalErrorException("One of the attached disk or iso as stated on OVF does not exists " + path);
             }
         }
@@ -333,8 +334,8 @@ public class OVFHelper {
             od._controller = getControllerType(items, od._diskId);
             vd.add(od);
         }
-        if (s_logger.isTraceEnabled()) {
-            s_logger.trace(String.format("found %d disk definitions",vd.size()));
+        if (logger.isTraceEnabled()) {
+            logger.trace(String.format("found %d disk definitions",vd.size()));
         }
         return vd;
     }
@@ -365,8 +366,8 @@ public class OVFHelper {
                 vf.add(of);
             }
         }
-        if (s_logger.isTraceEnabled()) {
-            s_logger.trace(String.format("found %d file definitions in %s",vf.size(), ovfFile.getPath()));
+        if (logger.isTraceEnabled()) {
+            logger.trace(String.format("found %d file definitions in %s",vf.size(), ovfFile.getPath()));
         }
         return vf;
     }
@@ -461,7 +462,7 @@ public class OVFHelper {
             Element disk = (Element)disks.item(i);
             String fileRef = ovfParser.getNodeAttribute(disk, "fileRef");
             if (keepfile == null) {
-                s_logger.info("FATAL: OVA format error");
+                logger.info("FATAL: OVA format error");
             } else if (keepfile.equals(fileRef)) {
                 keepdisk = ovfParser.getNodeAttribute(disk, "diskId");
             } else {
@@ -505,7 +506,7 @@ public class OVFHelper {
             outfile.write(writer.toString());
             outfile.close();
         } catch (IOException | TransformerException e) {
-            s_logger.info("Unexpected exception caught while rewriting OVF:" + e.getMessage(), e);
+            logger.info("Unexpected exception caught while rewriting OVF:" + e.getMessage(), e);
             throw new CloudRuntimeException(e);
         }
     }
@@ -521,8 +522,8 @@ public class OVFHelper {
 
     public List<OVFNetworkTO> getNetPrerequisitesFromDocument(Document doc) throws InternalErrorException {
         if (doc == null) {
-            if (s_logger.isTraceEnabled()) {
-                s_logger.trace("no document to parse; returning no prerequisite networks");
+            if (logger.isTraceEnabled()) {
+                logger.trace("no document to parse; returning no prerequisite networks");
             }
             return Collections.emptyList();
         }
@@ -539,8 +540,8 @@ public class OVFHelper {
     private void matchNicsToNets(Map<String, OVFNetworkTO> nets, Node systemElement) {
         final DocumentTraversal traversal = (DocumentTraversal) systemElement;
         final NodeIterator iterator = traversal.createNodeIterator(systemElement, NodeFilter.SHOW_ELEMENT, null, true);
-        if (s_logger.isTraceEnabled()) {
-            s_logger.trace(String.format("starting out with %d network-prerequisites, parsing hardware",nets.size()));
+        if (logger.isTraceEnabled()) {
+            logger.trace(String.format("starting out with %d network-prerequisites, parsing hardware",nets.size()));
         }
         int nicCount = 0;
         for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
@@ -549,8 +550,8 @@ public class OVFHelper {
                 nicCount++;
                 String name = e.getTextContent(); // should be in our nets
                 if(nets.get(name) == null) {
-                    if(s_logger.isInfoEnabled()) {
-                        s_logger.info(String.format("found a nic definition without a network definition byname %s, adding it to the list.", name));
+                    if(logger.isInfoEnabled()) {
+                        logger.info(String.format("found a nic definition without a network definition byname %s, adding it to the list.", name));
                     }
                     nets.put(name, new OVFNetworkTO());
                 }
@@ -560,8 +561,8 @@ public class OVFHelper {
                 }
             }
         }
-        if (s_logger.isTraceEnabled()) {
-            s_logger.trace(String.format("ending up with %d network-prerequisites, parsed %d nics", nets.size(), nicCount));
+        if (logger.isTraceEnabled()) {
+            logger.trace(String.format("ending up with %d network-prerequisites, parsed %d nics", nets.size(), nicCount));
         }
     }
 
@@ -584,7 +585,7 @@ public class OVFHelper {
             int addressOnParent = Integer.parseInt(addressOnParentStr);
             nic.setAddressOnParent(addressOnParent);
         } catch (NumberFormatException e) {
-            s_logger.warn("Encountered element of type \"AddressOnParent\", that could not be parse to an integer number: " + addressOnParentStr);
+            logger.warn("Encountered element of type \"AddressOnParent\", that could not be parse to an integer number: " + addressOnParentStr);
         }
 
         boolean automaticAllocation = StringUtils.isNotBlank(automaticAllocationStr) && Boolean.parseBoolean(automaticAllocationStr);
@@ -596,7 +597,7 @@ public class OVFHelper {
             int instanceId = Integer.parseInt(instanceIdStr);
             nic.setInstanceID(instanceId);
         } catch (NumberFormatException e) {
-            s_logger.warn("Encountered element of type \"InstanceID\", that could not be parse to an integer number: " + instanceIdStr);
+            logger.warn("Encountered element of type \"InstanceID\", that could not be parse to an integer number: " + instanceIdStr);
         }
 
         nic.setResourceSubType(resourceSubType);
@@ -608,7 +609,7 @@ public class OVFHelper {
         NodeList systemElements = ovfParser.getElementsFromOVFDocument(doc, "VirtualSystem");
         if (systemElements.getLength() != 1) {
             String msg = "found " + systemElements.getLength() + " system definitions in OVA, can only handle exactly one.";
-            s_logger.warn(msg);
+            logger.warn(msg);
             throw new InternalErrorException(msg);
         }
     }
@@ -629,8 +630,8 @@ public class OVFHelper {
 
             nets.put(networkName,network);
         }
-        if (s_logger.isTraceEnabled()) {
-            s_logger.trace(String.format("found %d networks in template", nets.size()));
+        if (logger.isTraceEnabled()) {
+            logger.trace(String.format("found %d networks in template", nets.size()));
         }
         return nets;
     }
@@ -770,7 +771,7 @@ public class OVFHelper {
             try {
                 return Long.parseLong(value);
             } catch (NumberFormatException e) {
-                s_logger.debug("Could not parse the value: " + value + ", ignoring it");
+                logger.debug("Could not parse the value: " + value + ", ignoring it");
             }
         }
         return null;
@@ -781,7 +782,7 @@ public class OVFHelper {
             try {
                 return Integer.parseInt(value);
             } catch (NumberFormatException e) {
-                s_logger.debug("Could not parse the value: " + value + ", ignoring it");
+                logger.debug("Could not parse the value: " + value + ", ignoring it");
             }
         }
         return null;
@@ -819,7 +820,7 @@ public class OVFHelper {
                 try {
                     compressedLicense = compressOVFEula(eulaLicense);
                 } catch (IOException e) {
-                    s_logger.error("Could not compress the license for info " + eulaInfo);
+                    logger.error("Could not compress the license for info " + eulaInfo);
                     continue;
                 }
                 OVFEulaSectionTO eula = new OVFEulaSectionTO(eulaInfo, compressedLicense, eulaIndex);
diff --git a/api/src/main/java/com/cloud/agent/api/storage/OVFParser.java b/api/src/main/java/com/cloud/agent/api/storage/OVFParser.java
index b66fbe418d7..38f478d63cf 100644
--- a/api/src/main/java/com/cloud/agent/api/storage/OVFParser.java
+++ b/api/src/main/java/com/cloud/agent/api/storage/OVFParser.java
@@ -27,7 +27,8 @@ import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.cloudstack.utils.security.ParserUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -36,7 +37,7 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 public class OVFParser {
-    private static final Logger s_logger = Logger.getLogger(OVFParser.class);
+    protected Logger logger = LogManager.getLogger(getClass());
 
     private static final String DEFAULT_OVF_SCHEMA = "http://schemas.dmtf.org/ovf/envelope/1";
     private static final String VMW_SCHEMA = "http://www.vmware.com/schema/ovf";
@@ -53,7 +54,7 @@ public class OVFParser {
             documentBuilderFactory.setNamespaceAware(true);
             documentBuilder = documentBuilderFactory.newDocumentBuilder();
         } catch (ParserConfigurationException e) {
-            s_logger.error("Cannot start the OVF parser: " + e.getMessage(), e);
+            logger.error("Cannot start the OVF parser: " + e.getMessage(), e);
         }
     }
 
@@ -69,7 +70,7 @@ public class OVFParser {
         try {
             return documentBuilder.parse(new File(ovfFilePath));
         } catch (SAXException | IOException e) {
-            s_logger.error("Error parsing " + ovfFilePath + " " + e.getMessage(), e);
+            logger.error("Error parsing " + ovfFilePath + " " + e.getMessage(), e);
             return null;
         }
     }
diff --git a/api/src/main/java/com/cloud/network/NetworkProfile.java b/api/src/main/java/com/cloud/network/NetworkProfile.java
index 44853069575..1a5c80ea871 100644
--- a/api/src/main/java/com/cloud/network/NetworkProfile.java
+++ b/api/src/main/java/com/cloud/network/NetworkProfile.java
@@ -22,10 +22,8 @@ import java.util.Date;
 import com.cloud.network.Networks.BroadcastDomainType;
 import com.cloud.network.Networks.Mode;
 import com.cloud.network.Networks.TrafficType;
-import org.apache.log4j.Logger;
 
 public class NetworkProfile implements Network {
-    static final Logger s_logger = Logger.getLogger(NetworkProfile.class);
     private final long id;
     private final String uuid;
     private final long dataCenterId;
diff --git a/api/src/main/java/com/cloud/storage/DataStoreRole.java b/api/src/main/java/com/cloud/storage/DataStoreRole.java
index 185e370159c..d9af495ab00 100644
--- a/api/src/main/java/com/cloud/storage/DataStoreRole.java
+++ b/api/src/main/java/com/cloud/storage/DataStoreRole.java
@@ -20,6 +20,7 @@ package com.cloud.storage;
 
 import com.cloud.utils.exception.CloudRuntimeException;
 
+
 public enum DataStoreRole {
     Primary("primary"), Image("image"), ImageCache("imagecache"), Backup("backup"), Object("object");
 
diff --git a/api/src/main/java/org/apache/cloudstack/acl/RoleType.java b/api/src/main/java/org/apache/cloudstack/acl/RoleType.java
index ec82cd6605b..005d47c85bc 100644
--- a/api/src/main/java/org/apache/cloudstack/acl/RoleType.java
+++ b/api/src/main/java/org/apache/cloudstack/acl/RoleType.java
@@ -20,7 +20,8 @@ import org.apache.commons.lang3.StringUtils;
 
 import com.cloud.user.Account;
 import com.google.common.base.Enums;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -37,7 +38,7 @@ public enum RoleType {
     private Account.Type accountType;
     private int mask;
 
-    private static Logger logger = Logger.getLogger(RoleType.class.getName());
+    private static Logger LOGGER = LogManager.getLogger(RoleType.class.getName());
     private static Map<Account.Type, RoleType> ACCOUNT_TYPE_MAP = new HashMap<>();
 
     static {
@@ -104,10 +105,10 @@ public enum RoleType {
      * */
     public static Account.Type getAccountTypeByRole(final Role role, final Account.Type defautAccountType) {
         if (role != null) {
-            logger.debug(String.format("Role [%s] is not null; therefore, we use its account type [%s].", role, defautAccountType));
+            LOGGER.debug(String.format("Role [%s] is not null; therefore, we use its account type [%s].", role, defautAccountType));
             return role.getRoleType().getAccountType();
         }
-        logger.debug(String.format("Role is null; therefore, we use the default account type [%s] value.", defautAccountType));
+        LOGGER.debug(String.format("Role is null; therefore, we use the default account type [%s] value.", defautAccountType));
         return defautAccountType;
     }
 }
diff --git a/api/src/main/java/org/apache/cloudstack/api/AbstractGetUploadParamsCmd.java b/api/src/main/java/org/apache/cloudstack/api/AbstractGetUploadParamsCmd.java
index ed3381ae97c..083a1be00f5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/AbstractGetUploadParamsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/AbstractGetUploadParamsCmd.java
@@ -25,11 +25,9 @@ import org.apache.cloudstack.api.response.DomainResponse;
 import org.apache.cloudstack.api.response.GetUploadParamsResponse;
 import org.apache.cloudstack.api.response.ProjectResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
-import org.apache.log4j.Logger;
 
 public abstract class AbstractGetUploadParamsCmd extends BaseCmd {
 
-    public static final Logger s_logger = Logger.getLogger(AbstractGetUploadParamsCmd.class.getName());
 
     @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, required = true, description = "the name of the volume/template/iso")
     private String name;
diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java
index 865ec745640..6859b0a7f40 100644
--- a/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api;
 
 
-import org.apache.log4j.Logger;
 
 /**
  * queryAsyncJobResult API command.
@@ -30,7 +29,6 @@ public abstract class BaseAsyncCmd extends BaseCmd {
     public static final String migrationSyncObject = "migration";
     public static final String snapshotHostSyncObject = "snapshothost";
     public static final String gslbSyncObject = "globalserverloadbalancer";
-    private static final Logger s_logger = Logger.getLogger(BaseAsyncCmd.class.getName());
 
     private Object job;
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseCmd.java
index f32922819b0..323fd4e6f64 100644
--- a/api/src/main/java/org/apache/cloudstack/api/BaseCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/BaseCmd.java
@@ -47,7 +47,8 @@ import org.apache.cloudstack.storage.ImageStoreService;
 import org.apache.cloudstack.storage.template.VnfTemplateManager;
 import org.apache.cloudstack.usage.UsageService;
 import org.apache.commons.collections.MapUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import com.cloud.configuration.ConfigurationService;
 import com.cloud.exception.ConcurrentOperationException;
@@ -95,7 +96,7 @@ import com.cloud.vm.UserVmService;
 import com.cloud.vm.snapshot.VMSnapshotService;
 
 public abstract class BaseCmd {
-    private static final Logger s_logger = Logger.getLogger(BaseCmd.class.getName());
+    protected transient Logger logger = LogManager.getLogger(getClass());
     public static final String RESPONSE_SUFFIX = "response";
     public static final String RESPONSE_TYPE_XML = HttpUtils.RESPONSE_TYPE_XML;
     public static final String RESPONSE_TYPE_JSON = HttpUtils.RESPONSE_TYPE_JSON;
@@ -374,7 +375,7 @@ public abstract class BaseCmd {
             if (roleIsAllowed) {
                 validFields.add(field);
             } else {
-                s_logger.debug("Ignoring parameter " + parameterAnnotation.name() + " as the caller is not authorized to pass it in");
+                logger.debug("Ignoring parameter " + parameterAnnotation.name() + " as the caller is not authorized to pass it in");
             }
         }
 
@@ -419,7 +420,7 @@ public abstract class BaseCmd {
                 if(!isDisplay)
                     break;
             } catch (Exception e){
-                s_logger.trace("Caught exception while checking first class entities for display property, continuing on", e);
+                logger.trace("Caught exception while checking first class entities for display property, continuing on", e);
             }
         }
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java
index 052d7d1e8b7..be95547a8a7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/BaseListTemplateOrIsoPermissionsCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.ResponseObject.ResponseView;
 import org.apache.cloudstack.api.command.ResponseViewProvider;
@@ -28,7 +27,6 @@ import com.cloud.template.VirtualMachineTemplate;
 import com.cloud.user.Account;
 
 public abstract class BaseListTemplateOrIsoPermissionsCmd extends BaseCmd implements ResponseViewProvider {
-    public Logger logger = getLogger();
     protected static final String s_name = "listtemplatepermissionsresponse";
 
     /////////////////////////////////////////////////////
@@ -59,9 +57,6 @@ public abstract class BaseListTemplateOrIsoPermissionsCmd extends BaseCmd implem
         return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
     }
 
-    protected Logger getLogger() {
-        return Logger.getLogger(BaseListTemplateOrIsoPermissionsCmd.class);
-    }
 
     @Override
     public String getCommandName() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
index 08f390f1972..e3aead6881b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api;
 
-import org.apache.log4j.Logger;
 import org.apache.cloudstack.api.response.GuestOSResponse;
 import org.apache.cloudstack.api.response.TemplateResponse;
 
@@ -24,7 +23,6 @@ import java.util.Collection;
 import java.util.Map;
 
 public abstract class BaseUpdateTemplateOrIsoCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(BaseUpdateTemplateOrIsoCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoPermissionsCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoPermissionsCmd.java
index 410ffefb00d..e6ee0897db0 100644
--- a/api/src/main/java/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoPermissionsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoPermissionsCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.response.ProjectResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
@@ -27,16 +26,12 @@ import org.apache.cloudstack.api.response.TemplateResponse;
 import com.cloud.exception.InvalidParameterValueException;
 
 public abstract class BaseUpdateTemplateOrIsoPermissionsCmd extends BaseCmd {
-    public Logger _logger = getLogger();
     protected String _name = getResponseName();
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
     // ///////////////////////////////////////////////////
 
-    protected Logger getLogger() {
-        return Logger.getLogger(BaseUpdateTemplateOrIsoPermissionsCmd.class);
-    }
 
     protected String getResponseName() {
         return "updatetemplateorisopermissionsresponse";
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
index 945bb956c3e..6dbc6acc59a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
@@ -21,7 +21,6 @@ import java.util.Map;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -43,7 +42,6 @@ import com.cloud.user.UserAccount;
 @APICommand(name = "createAccount", description = "Creates an account", responseObject = AccountResponse.class, entityType = {Account.class},
         requestHasSensitiveInfo = true, responseHasSensitiveInfo = true)
 public class CreateAccountCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateAccountCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
index 9a0ea4e9ec0..36e22acff91 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
@@ -31,7 +31,6 @@ import org.apache.cloudstack.api.response.AccountResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.region.RegionService;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.user.Account;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteAccount", description = "Deletes a account, and all users associated with this account", responseObject = SuccessResponse.class, entityType = {Account.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteAccountCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteAccountCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
index 91b0673e186..55293eca619 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.account;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
 @APICommand(name = "disableAccount", description = "Disables an account", responseObject = AccountResponse.class, entityType = {Account.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class DisableAccountCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DisableAccountCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
index cc37dc23713..da96383f134 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.account;
 import javax.inject.Inject;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "enableAccount", description = "Enables an account", responseObject = AccountResponse.class, entityType = {Account.class},
     requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class EnableAccountCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(EnableAccountCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/LockAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/LockAccountCmd.java
index a430914a25a..d7847373e92 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/LockAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/LockAccountCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.account;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = true)
 public class LockAccountCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(LockAccountCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
index 36d299bcfc8..91cbb90e4da 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
@@ -23,7 +23,6 @@ import javax.inject.Inject;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
 import org.apache.cloudstack.api.response.RoleResponse;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateAccount", description = "Updates account information for the authenticated user", responseObject = AccountResponse.class, entityType = {Account.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class UpdateAccountCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateAccountCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/address/AcquirePodIpCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/address/AcquirePodIpCmdByAdmin.java
index a965624a2a9..7397697bd2c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/address/AcquirePodIpCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/address/AcquirePodIpCmdByAdmin.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.address;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.exception.ResourceUnavailableException;
 @APICommand(name = "acquirePodIpAddress", description = "Allocates IP addresses in respective Pod of a Zone", responseObject = AcquirePodIpCmdResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AcquirePodIpCmdByAdmin extends BaseCmd {
 
-    public static final Logger s_logger = Logger.getLogger(AcquirePodIpCmdByAdmin.class.getName());
     private static final String s_name = "acquirepodipaddress";
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/address/AssociateIPAddrCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/address/AssociateIPAddrCmdByAdmin.java
index 56f41b5f58e..672691ffbd8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/address/AssociateIPAddrCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/address/AssociateIPAddrCmdByAdmin.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.address;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ResponseObject.ResponseView;
@@ -27,5 +26,4 @@ import org.apache.cloudstack.api.response.IPAddressResponse;
 @APICommand(name = "associateIpAddress", description = "Acquires and associates a public IP to an account.", responseObject = IPAddressResponse.class, responseView = ResponseView.Full,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AssociateIPAddrCmdByAdmin extends AssociateIPAddrCmd implements AdminCmd {
-    public static final Logger s_logger = Logger.getLogger(AssociateIPAddrCmdByAdmin.class.getName());
 }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/address/ReleasePodIpCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/address/ReleasePodIpCmdByAdmin.java
index b6bfbcaa1e2..7d4cab6a0ac 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/address/ReleasePodIpCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/address/ReleasePodIpCmdByAdmin.java
@@ -16,7 +16,6 @@
 //under the License.
 package org.apache.cloudstack.api.command.admin.address;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -31,7 +30,6 @@ import com.cloud.user.Account;
 
 @APICommand(name = "releasePodIpAddress", description = "Releases a Pod IP back to the Pod", responseObject = SuccessResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ReleasePodIpCmdByAdmin extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(ReleasePodIpCmdByAdmin.class.getName());
 
     private static final String s_name = "releasepodipresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/affinitygroup/UpdateVMAffinityGroupCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/affinitygroup/UpdateVMAffinityGroupCmdByAdmin.java
index 7bf9b64481b..43e70838e18 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/affinitygroup/UpdateVMAffinityGroupCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/affinitygroup/UpdateVMAffinityGroupCmdByAdmin.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.affinitygroup;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ResponseObject.ResponseView;
@@ -33,5 +32,4 @@ import com.cloud.vm.VirtualMachine;
         requestHasSensitiveInfo = false,
         responseHasSensitiveInfo = true)
 public class UpdateVMAffinityGroupCmdByAdmin extends UpdateVMAffinityGroupCmd implements AdminCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateVMAffinityGroupCmdByAdmin.class.getName());
 }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/alert/GenerateAlertCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/alert/GenerateAlertCmd.java
index 9446272df6e..30f3bbbec1b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/alert/GenerateAlertCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/alert/GenerateAlertCmd.java
@@ -27,7 +27,6 @@ import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.PodResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 
@@ -35,7 +34,6 @@ import com.cloud.event.EventTypes;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class GenerateAlertCmd extends BaseAsyncCmd {
 
-    public static final Logger s_logger = Logger.getLogger(GenerateAlertCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/CreateCounterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/CreateCounterCmd.java
index 617d1104eda..7fa66ffff1f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/CreateCounterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/CreateCounterCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.admin.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createCounter", description = "Adds metric counter for VM auto scaling", responseObject = CounterResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateCounterCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateCounterCmd.class.getName());
     private static final String s_name = "counterresponse";
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/DeleteCounterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/DeleteCounterCmd.java
index e1f7859a56b..b7b2ce5cb70 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/DeleteCounterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/DeleteCounterCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.admin.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteCounter", description = "Deletes a counter for VM auto scaling", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteCounterCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteCounterCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
@@ -55,7 +53,7 @@ public class DeleteCounterCmd extends BaseAsyncCmd {
         try {
             result = _autoScaleService.deleteCounter(getId());
         } catch (ResourceInUseException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_IN_USE_ERROR, ex.getMessage());
         }
 
@@ -63,7 +61,7 @@ public class DeleteCounterCmd extends BaseAsyncCmd {
             SuccessResponse response = new SuccessResponse(getCommandName());
             this.setResponseObject(response);
         } else {
-            s_logger.warn("Failed to delete counter with Id: " + getId());
+            logger.warn("Failed to delete counter with Id: " + getId());
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete counter.");
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java
index 1cd6f4a8328..9de06715ee7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java
@@ -30,7 +30,6 @@ import org.apache.cloudstack.backup.BackupManager;
 import org.apache.cloudstack.backup.BackupOffering;
 import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.user.Account;
@@ -39,7 +38,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 @APICommand(name = "updateBackupOffering", description = "Updates a backup offering.", responseObject = BackupOfferingResponse.class,
 requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.16.0")
 public class UpdateBackupOfferingCmd extends BaseCmd {
-    private static final Logger LOGGER = Logger.getLogger(UpdateBackupOfferingCmd.class.getName());
 
     @Inject
     private BackupManager backupManager;
@@ -100,7 +98,7 @@ public class UpdateBackupOfferingCmd extends BaseCmd {
             this.setResponseObject(response);
         } catch (CloudRuntimeException e) {
             ApiErrorCode paramError = e instanceof InvalidParameterValueException ? ApiErrorCode.PARAM_ERROR : ApiErrorCode.INTERNAL_ERROR;
-            LOGGER.error(String.format("Failed to update Backup Offering [id: %s] due to: [%s].", id, e.getMessage()), e);
+            logger.error(String.format("Failed to update Backup Offering [id: %s] due to: [%s].", id, e.getMessage()), e);
             throw new ServerApiException(paramError, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/ca/IssueCertificateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/ca/IssueCertificateCmd.java
index 4c543fdb6a8..463af000f58 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/ca/IssueCertificateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/ca/IssueCertificateCmd.java
@@ -37,7 +37,6 @@ import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.framework.ca.Certificate;
 import org.apache.cloudstack.utils.security.CertUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 
@@ -49,7 +48,6 @@ import com.cloud.event.EventTypes;
         since = "4.11.0",
         authorized = {RoleType.Admin})
 public class IssueCertificateCmd extends BaseAsyncCmd {
-    private static final Logger LOG = Logger.getLogger(IssueCertificateCmd.class);
 
 
     @Inject
@@ -132,7 +130,7 @@ public class IssueCertificateCmd extends BaseAsyncCmd {
                 certificateResponse.setCaCertificate(CertUtils.x509CertificatesToPem(certificate.getCaCertificates()));
             }
         } catch (final IOException e) {
-            LOG.error("Failed to generate and convert client certificate(s) to PEM due to error: ", e);
+            logger.error("Failed to generate and convert client certificate(s) to PEM due to error: ", e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to process and return client certificate");
         }
         certificateResponse.setResponseName(getCommandName());
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
index df48b2511b6..184a443d9db 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
@@ -21,7 +21,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -42,7 +41,6 @@ import com.cloud.user.Account;
 @APICommand(name = "addCluster", description = "Adds a new cluster", responseObject = ClusterResponse.class,
         requestHasSensitiveInfo = true, responseHasSensitiveInfo = false)
 public class AddClusterCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddClusterCmd.class.getName());
 
 
     @Parameter(name = ApiConstants.CLUSTER_NAME, type = CommandType.STRING, required = true, description = "the cluster name")
@@ -226,10 +224,10 @@ public class AddClusterCmd extends BaseCmd {
 
             this.setResponseObject(response);
         } catch (DiscoveryException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         } catch (ResourceInUseException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             ServerApiException e = new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
             for (String proxyObj : ex.getIdProxyList()) {
                 e.addProxyObject(proxyObj);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/DeleteClusterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/DeleteClusterCmd.java
index 497cef4c3ec..2b1cfe8bcb5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/DeleteClusterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/DeleteClusterCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.cluster;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -33,7 +32,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteCluster", description = "Deletes a cluster.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteClusterCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteClusterCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/ListClustersCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/ListClustersCmd.java
index d83330c664a..67d0678410c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/ListClustersCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/ListClustersCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.cluster;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -36,7 +35,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listClusters", description = "Lists clusters.", responseObject = ClusterResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListClustersCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListClustersCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/UpdateClusterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/UpdateClusterCmd.java
index dd527fb409a..77bb97fd39d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/UpdateClusterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/UpdateClusterCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.cluster;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateCluster", description = "Updates an existing cluster", responseObject = ClusterResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateClusterCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddClusterCmd.class.getName());
 
 
     @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = ClusterResponse.class, required = true, description = "the ID of the Cluster")
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListCfgGroupsByCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListCfgGroupsByCmd.java
index 46ab10cb2bc..d735218169d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListCfgGroupsByCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListCfgGroupsByCmd.java
@@ -27,14 +27,12 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.ConfigurationGroupResponse;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.config.ConfigurationGroup;
-import org.apache.log4j.Logger;
 
 import com.cloud.utils.Pair;
 
 @APICommand(name = ListCfgGroupsByCmd.APINAME, description = "Lists all configuration groups (primarily used for UI).", responseObject = ConfigurationGroupResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.18.0")
 public class ListCfgGroupsByCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListCfgGroupsByCmd.class.getName());
 
     public static final String APINAME = "listConfigurationGroups";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListCfgsByCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListCfgsByCmd.java
index 80abe5d3e8f..e365d8bc2dc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListCfgsByCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListCfgsByCmd.java
@@ -23,7 +23,6 @@ import org.apache.cloudstack.api.ApiErrorCode;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.DomainResponse;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -47,7 +46,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 public class ListCfgsByCmd extends BaseListCmd {
 
     public static final String APINAME = "listConfigurations";
-    public static final Logger s_logger = Logger.getLogger(ListCfgsByCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListDeploymentPlannersCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListDeploymentPlannersCmd.java
index 4f5186a6df6..78fa31beeb4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListDeploymentPlannersCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListDeploymentPlannersCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.config;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.BaseListCmd;
@@ -29,7 +28,6 @@ import org.apache.cloudstack.api.response.ListResponse;
 @APICommand(name = "listDeploymentPlanners", description = "Lists all DeploymentPlanners available.", responseObject = DeploymentPlannersResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListDeploymentPlannersCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListDeploymentPlannersCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListHypervisorCapabilitiesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListHypervisorCapabilitiesCmd.java
index 64f1c19b70c..e7cc9e0234e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListHypervisorCapabilitiesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ListHypervisorCapabilitiesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.config;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -39,7 +38,6 @@ import com.cloud.utils.Pair;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class ListHypervisorCapabilitiesCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListHypervisorCapabilitiesCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ResetCfgCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ResetCfgCmd.java
index ada389e0093..f114b263b63 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ResetCfgCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/ResetCfgCmd.java
@@ -25,7 +25,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.ImageStoreResponse;
 import org.apache.cloudstack.framework.config.ConfigKey;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.response.AccountResponse;
 import org.apache.cloudstack.api.response.ClusterResponse;
@@ -41,7 +40,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "resetConfiguration", description = "Resets a configuration. The configuration will be set to default value for global setting, and removed from account_details or domain_details for Account/Domain settings", responseObject = ConfigurationResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.16.0")
 public class ResetCfgCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(ResetCfgCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/UpdateCfgCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/UpdateCfgCmd.java
index 63dc51452f0..dbf478df701 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/UpdateCfgCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/UpdateCfgCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.config;
 import com.cloud.utils.crypt.DBEncryptionUtil;
 import org.apache.cloudstack.acl.RoleService;
 import org.apache.cloudstack.api.response.DomainResponse;
-import org.apache.log4j.Logger;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiArgValidator;
 import org.apache.cloudstack.api.ApiConstants;
@@ -41,7 +40,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateConfiguration", description = "Updates a configuration.", responseObject = ConfigurationResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateCfgCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateCfgCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/UpdateHypervisorCapabilitiesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/UpdateHypervisorCapabilitiesCmd.java
index 02cdf1a0717..50984188bf5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/config/UpdateHypervisorCapabilitiesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/config/UpdateHypervisorCapabilitiesCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.config;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class UpdateHypervisorCapabilitiesCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateHypervisorCapabilitiesCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/RunDiagnosticsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/RunDiagnosticsCmd.java
index 3d3c7410dc5..4537eb6f215 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/RunDiagnosticsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/RunDiagnosticsCmd.java
@@ -38,7 +38,6 @@ import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.diagnostics.DiagnosticsService;
 import org.apache.cloudstack.diagnostics.DiagnosticsType;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.InsufficientCapacityException;
@@ -53,7 +52,6 @@ import com.cloud.vm.VirtualMachine;
         authorized = {RoleType.Admin},
         since = "4.12.0.0")
 public class RunDiagnosticsCmd extends BaseAsyncCmd {
-    private static final Logger LOGGER = Logger.getLogger(RunDiagnosticsCmd.class);
 
     @Inject
     private DiagnosticsService diagnosticsService;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/ListTemplateDirectDownloadCertificatesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/ListTemplateDirectDownloadCertificatesCmd.java
index 53b29a37f8f..145ff6ba782 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/ListTemplateDirectDownloadCertificatesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/ListTemplateDirectDownloadCertificatesCmd.java
@@ -35,7 +35,6 @@ import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.direct.download.DirectDownloadCertificate;
 import org.apache.cloudstack.direct.download.DirectDownloadCertificateHostMap;
 import org.apache.cloudstack.direct.download.DirectDownloadManager;
-import org.apache.log4j.Logger;
 
 import javax.inject.Inject;
 import java.util.ArrayList;
@@ -63,7 +62,6 @@ public class ListTemplateDirectDownloadCertificatesCmd extends BaseListCmd {
             description = "if set to true: include the hosts where the certificate is uploaded to")
     private Boolean listHosts;
 
-    private static final Logger LOG = Logger.getLogger(ListTemplateDirectDownloadCertificatesCmd.class);
 
     public boolean isListHosts() {
         return listHosts != null && listHosts;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/RevokeTemplateDirectDownloadCertificateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/RevokeTemplateDirectDownloadCertificateCmd.java
index e44ebd31274..eb9031cbc58 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/RevokeTemplateDirectDownloadCertificateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/RevokeTemplateDirectDownloadCertificateCmd.java
@@ -41,7 +41,6 @@ import org.apache.cloudstack.direct.download.DirectDownloadManager;
 import org.apache.cloudstack.direct.download.DirectDownloadManager.HostCertificateStatus;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import javax.inject.Inject;
 import java.util.ArrayList;
@@ -57,7 +56,6 @@ public class RevokeTemplateDirectDownloadCertificateCmd extends BaseCmd {
     @Inject
     DirectDownloadManager directDownloadManager;
 
-    private static final Logger LOG = Logger.getLogger(RevokeTemplateDirectDownloadCertificateCmd.class);
 
     @Parameter(name = ApiConstants.ID, type = CommandType.UUID,
             entityType = DirectDownloadCertificateResponse.class,
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/UploadTemplateDirectDownloadCertificateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/UploadTemplateDirectDownloadCertificateCmd.java
index 0fa1797c7fe..c5c102be56d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/UploadTemplateDirectDownloadCertificateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/direct/download/UploadTemplateDirectDownloadCertificateCmd.java
@@ -33,7 +33,6 @@ import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.direct.download.DirectDownloadCertificate;
 import org.apache.cloudstack.direct.download.DirectDownloadManager;
 import org.apache.cloudstack.direct.download.DirectDownloadManager.HostCertificateStatus;
-import org.apache.log4j.Logger;
 
 import javax.inject.Inject;
 import java.util.ArrayList;
@@ -49,7 +48,6 @@ public class UploadTemplateDirectDownloadCertificateCmd extends BaseCmd {
     @Inject
     DirectDownloadManager directDownloadManager;
 
-    private static final Logger LOG = Logger.getLogger(UploadTemplateDirectDownloadCertificateCmd.class);
 
     @Parameter(name = ApiConstants.CERTIFICATE, type = BaseCmd.CommandType.STRING, required = true, length = 65535,
             description = "SSL certificate")
@@ -97,7 +95,7 @@ public class UploadTemplateDirectDownloadCertificateCmd extends BaseCmd {
         }
 
         try {
-            LOG.debug("Uploading certificate " + name + " to agents for Direct Download");
+            logger.debug("Uploading certificate " + name + " to agents for Direct Download");
             Pair<DirectDownloadCertificate, List<HostCertificateStatus>> uploadStatus =
                     directDownloadManager.uploadCertificateToHosts(certificate, name, hypervisor, zoneId, hostId);
             DirectDownloadCertificate certificate = uploadStatus.first();
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
index f6e09695f88..c7f06920bb8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.domain;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
  requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, authorized = {
         RoleType.Admin, RoleType.DomainAdmin })
 public class CreateDomainCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateDomainCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
index e0783b63098..db3bae25e39 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
@@ -30,7 +30,6 @@ import org.apache.cloudstack.api.response.DomainResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.region.RegionService;
-import org.apache.log4j.Logger;
 
 import com.cloud.domain.Domain;
 import com.cloud.event.EventTypes;
@@ -40,7 +39,6 @@ import com.cloud.user.Account;
 requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, authorized = {
         RoleType.Admin, RoleType.DomainAdmin })
 public class DeleteDomainCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteDomainCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/ListDomainChildrenCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/ListDomainChildrenCmd.java
index 72614627f31..8514bb6dda5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/ListDomainChildrenCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/ListDomainChildrenCmd.java
@@ -22,7 +22,6 @@ import java.util.List;
 import com.cloud.server.ResourceIcon;
 import com.cloud.server.ResourceTag;
 import org.apache.cloudstack.api.response.ResourceIconResponse;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listDomainChildren", description = "Lists all children domains belonging to a specified domain", responseObject = DomainResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListDomainChildrenCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListDomainChildrenCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/ListDomainsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/ListDomainsCmd.java
index 8b6661f27ff..2098389a169 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/ListDomainsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/ListDomainsCmd.java
@@ -23,7 +23,6 @@ import java.util.List;
 import com.cloud.server.ResourceIcon;
 import com.cloud.server.ResourceTag;
 import org.apache.cloudstack.api.response.ResourceIconResponse;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -41,7 +40,6 @@ import com.cloud.exception.InvalidParameterValueException;
 @APICommand(name = "listDomains", description = "Lists domains and provides detailed information for listed domains", responseObject = DomainResponse.class, responseView = ResponseView.Restricted, entityType = {Domain.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListDomainsCmd extends BaseListCmd implements UserCmd {
-    public static final Logger s_logger = Logger.getLogger(ListDomainsCmd.class.getName());
 
     private static final String s_name = "listdomainsresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
index db4030da772..353cb852bfd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.domain;
 import javax.inject.Inject;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateDomain", description = "Updates a domain with a new name", responseObject = DomainResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateDomainCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateDomainCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
index 0ad50071287..b854e8389c4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.guest;
 
 import org.apache.commons.collections.MapUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -43,7 +42,6 @@ import java.util.Map;
 @APICommand(name = "addGuestOs", description = "Add a new guest OS type", responseObject = GuestOSResponse.class,
         since = "4.4.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddGuestOsCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(AddGuestOsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsMappingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsMappingCmd.java
index 0ddd21994e3..3fdfebb54bf 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsMappingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsMappingCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.guest;
 
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
 @APICommand(name = "addGuestOsMapping", description = "Adds a guest OS name to hypervisor OS name mapping", responseObject = GuestOsMappingResponse.class,
         since = "4.4.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddGuestOsMappingCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(AddGuestOsMappingCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/GetHypervisorGuestOsNamesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/GetHypervisorGuestOsNamesCmd.java
index 79517708290..da920a2ec2d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/GetHypervisorGuestOsNamesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/GetHypervisorGuestOsNamesCmd.java
@@ -26,7 +26,6 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
 import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.HypervisorGuestOsNamesResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.user.Account;
@@ -35,8 +34,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = GetHypervisorGuestOsNamesCmd.APINAME, description = "Gets the guest OS names in the hypervisor", responseObject = HypervisorGuestOsNamesResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.19.0", authorized = {RoleType.Admin})
 public class GetHypervisorGuestOsNamesCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(GetHypervisorGuestOsNamesCmd.class.getName());
-
     public static final String APINAME = "getHypervisorGuestOsNames";
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/ListGuestOsMappingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/ListGuestOsMappingCmd.java
index 29ae0b4f188..23e62cdc781 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/ListGuestOsMappingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/ListGuestOsMappingCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.guest;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listGuestOsMapping", description = "Lists all available OS mappings for given hypervisor", responseObject = GuestOsMappingResponse.class,
         since = "4.4.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListGuestOsMappingCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListGuestOsMappingCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsCmd.java
index 14beb83e073..d38682ce5bb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.guest;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class RemoveGuestOsCmd extends BaseAsyncCmd {
 
-    public static final Logger s_logger = Logger.getLogger(RemoveGuestOsCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsMappingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsMappingCmd.java
index 0a72b7e0451..a472ab672c5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsMappingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsMappingCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.guest;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class RemoveGuestOsMappingCmd extends BaseAsyncCmd {
 
-    public static final Logger s_logger = Logger.getLogger(RemoveGuestOsMappingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
index 25f022b3b51..c98cd149ef3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.guest;
 
 import org.apache.commons.collections.MapUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -42,7 +41,6 @@ import java.util.Map;
         since = "4.4.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateGuestOsCmd extends BaseAsyncCmd {
 
-    public static final Logger s_logger = Logger.getLogger(UpdateGuestOsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsMappingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsMappingCmd.java
index c83be131b4f..fc67ef0a7e7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsMappingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsMappingCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.guest;
 
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateGuestOsMapping", description = "Updates the information about Guest OS to Hypervisor specific name mapping", responseObject = GuestOsMappingResponse.class,
         since = "4.4.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateGuestOsMappingCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateGuestOsMappingCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/AddHostCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/AddHostCmd.java
index 15955b9f0a8..ca27837aa88 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/AddHostCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/AddHostCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.host;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -40,7 +39,6 @@ import com.cloud.user.Account;
 @APICommand(name = "addHost", description = "Adds a new host.", responseObject = HostResponse.class,
         requestHasSensitiveInfo = true, responseHasSensitiveInfo = false)
 public class AddHostCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddHostCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -150,7 +148,7 @@ public class AddHostCmd extends BaseCmd {
 
             this.setResponseObject(response);
         } catch (DiscoveryException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/AddSecondaryStorageCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/AddSecondaryStorageCmd.java
index 225eb1dfecd..c965a39450b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/AddSecondaryStorageCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/AddSecondaryStorageCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.host;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "addSecondaryStorage", description = "Adds secondary storage.", responseObject = ImageStoreResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddSecondaryStorageCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddSecondaryStorageCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -81,7 +79,7 @@ public class AddSecondaryStorageCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add secondary storage");
             }
         } catch (DiscoveryException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
index cca449f570b..a514a61b8a4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.host;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "cancelHostMaintenance", description = "Cancels host maintenance.", responseObject = HostResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CancelMaintenanceCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(CancelMaintenanceCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/DeleteHostCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/DeleteHostCmd.java
index 934965cd24c..38325c2f072 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/DeleteHostCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/DeleteHostCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.host;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteHost", description = "Deletes a host.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteHostCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteHostCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java
index 2b6ccb68eea..db30e4f4c02 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java
@@ -20,7 +20,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.utils.Ternary;
 @APICommand(name = "findHostsForMigration", description = "Find hosts suitable for migrating a virtual machine.", responseObject = HostForMigrationResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class FindHostsForMigrationCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(FindHostsForMigrationCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostTagsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostTagsCmd.java
index ed4f9a09bc5..9ea2b2a7fbb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostTagsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostTagsCmd.java
@@ -18,7 +18,6 @@
  */
 package org.apache.cloudstack.api.command.admin.host;
 
-import org.apache.log4j.Logger;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
 import org.apache.cloudstack.api.BaseListCmd;
@@ -27,7 +26,6 @@ import org.apache.cloudstack.api.response.HostTagResponse;
 
 @APICommand(name = "listHostTags", description = "Lists host tags", responseObject = HostTagResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListHostTagsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListHostTagsCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
index b8668f61ca4..af87bbf33bb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
@@ -21,7 +21,6 @@ import java.util.EnumSet;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -45,7 +44,6 @@ import com.cloud.utils.Ternary;
 @APICommand(name = "listHosts", description = "Lists hosts.", responseObject = HostResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListHostsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListHostsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
index a89965e822e..2641c54364e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
@@ -25,7 +25,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.HostResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.host.Host;
@@ -35,7 +34,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 @APICommand(name = "prepareHostForMaintenance", description = "Prepares a host for maintenance.", responseObject = HostResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class PrepareForMaintenanceCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(PrepareForMaintenanceCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
index 7439d9da514..3550d61fdb9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
@@ -25,7 +25,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.HostResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.AgentUnavailableException;
@@ -36,7 +35,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 
 @APICommand(name = "reconnectHost", description = "Reconnects a host.", responseObject = HostResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ReconnectHostCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(ReconnectHostCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
index 90c388bc7dc..7fee0684c78 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.host;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "releaseHostReservation", description = "Releases host reservation.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ReleaseHostReservationCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(ReleaseHostReservationCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/UpdateHostCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/UpdateHostCmd.java
index 9cf47a9c4b9..88eeadb9b13 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/UpdateHostCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/UpdateHostCmd.java
@@ -27,14 +27,12 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.GuestOSCategoryResponse;
 import org.apache.cloudstack.api.response.HostResponse;
-import org.apache.log4j.Logger;
 
 import java.util.List;
 
 @APICommand(name = "updateHost", description = "Updates a host.", responseObject = HostResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateHostCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateHostCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -127,7 +125,7 @@ public class UpdateHostCmd extends BaseCmd {
             hostResponse.setResponseName(getCommandName());
             this.setResponseObject(hostResponse);
         } catch (Exception e) {
-            s_logger.debug("Failed to update host:" + getId(), e);
+            logger.debug("Failed to update host:" + getId(), e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update host:" + getId() + "," + e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/UpdateHostPasswordCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/UpdateHostPasswordCmd.java
index 2e05ad14475..c94fe2c5865 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/UpdateHostPasswordCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/UpdateHostPasswordCmd.java
@@ -24,14 +24,12 @@ import org.apache.cloudstack.api.response.ClusterResponse;
 import org.apache.cloudstack.api.response.HostResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.user.Account;
 
 @APICommand(name = "updateHostPassword", description = "Update password of a host/pool on management server.", responseObject = SuccessResponse.class,
 requestHasSensitiveInfo = true, responseHasSensitiveInfo = false)
 public class UpdateHostPasswordCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateHostPasswordCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
index 1c7e4a0ce21..18dfc87397a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ConfigureInternalLoadBalancerElementCmd.java
@@ -21,7 +21,6 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -47,7 +46,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class ConfigureInternalLoadBalancerElementCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(ConfigureInternalLoadBalancerElementCmd.class.getName());
 
     @Inject
     private List<InternalLoadBalancerElementService> _service;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
index f11f081031a..971f097fca5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/CreateInternalLoadBalancerElementCmd.java
@@ -20,7 +20,6 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -45,7 +44,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class CreateInternalLoadBalancerElementCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateInternalLoadBalancerElementCmd.class.getName());
 
     @Inject
     private List<InternalLoadBalancerElementService> _service;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
index f5756909706..0eb00234382 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.internallb;
 
 import org.apache.commons.lang.BooleanUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -39,7 +38,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "listInternalLoadBalancerVMs", description = "List internal LB VMs.", responseObject = DomainRouterResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListInternalLBVMsCmd extends BaseListProjectAndAccountResourcesCmd {
-    public static final Logger s_logger = Logger.getLogger(ListInternalLBVMsCmd.class.getName());
 
     private static final String s_name = "listinternallbvmsresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java
index 82d373e3119..6c2fadee737 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java
@@ -21,7 +21,6 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -46,7 +45,6 @@ import com.cloud.network.VirtualRouterProvider;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class ListInternalLoadBalancerElementsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListInternalLoadBalancerElementsCmd.class.getName());
 
     @Inject
     private InternalLoadBalancerElementService _service;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
index fdec7947853..3dd7d2adf37 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.internallb;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -42,7 +41,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "startInternalLoadBalancerVM", responseObject = DomainRouterResponse.class, description = "Starts an existing internal lb vm.", entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class StartInternalLBVMCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(StartInternalLBVMCmd.class.getName());
     private static final String s_name = "startinternallbvmresponse";
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
index 76ad4d438d2..a746e5d906d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.internallb;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -41,7 +40,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "stopInternalLoadBalancerVM", description = "Stops an Internal LB vm.", responseObject = DomainRouterResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class StopInternalLBVMCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(StopInternalLBVMCmd.class.getName());
     private static final String s_name = "stopinternallbvmresponse";
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java
index 3af772d332f..a68ed62857a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java
@@ -23,12 +23,10 @@ import org.apache.cloudstack.api.BaseListCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.ManagementServerResponse;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "listManagementServers", description = "Lists management servers.", responseObject = ManagementServerResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListMgmtsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListMgmtsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
index be0cd9f2fa7..33477297043 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
@@ -20,7 +20,6 @@ import java.util.Map;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -44,7 +43,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
             responseObject = NetworkDeviceResponse.class,
             requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddNetworkDeviceCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddNetworkDeviceCmd.class);
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
index 176375ce181..40a82239345 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.network;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class AddNetworkServiceProviderCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(AddNetworkServiceProviderCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateGuestNetworkIpv6PrefixCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateGuestNetworkIpv6PrefixCmd.java
index d7c7bec99f9..f6b035c5783 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateGuestNetworkIpv6PrefixCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateGuestNetworkIpv6PrefixCmd.java
@@ -27,7 +27,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.DataCenterGuestIpv6PrefixResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.dc.DataCenterGuestIpv6Prefix;
 import com.cloud.event.EventTypes;
@@ -45,7 +44,6 @@ import com.cloud.user.Account;
         responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin})
 public class CreateGuestNetworkIpv6PrefixCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateGuestNetworkIpv6PrefixCmd.class);
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateManagementNetworkIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateManagementNetworkIpRangeCmd.java
index 2bab4f05352..85cfddfb714 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateManagementNetworkIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateManagementNetworkIpRangeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.ApiArgValidator;
@@ -44,7 +43,6 @@ import com.cloud.user.Account;
         responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin})
 public class CreateManagementNetworkIpRangeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateManagementNetworkIpRangeCmd.class);
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkCmdByAdmin.java
index 53b02718ea3..cd9770877ed 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkCmdByAdmin.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.network;
 
 import org.apache.cloudstack.api.ApiArgValidator;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.network.Network;
 @APICommand(name = "createNetwork", description = "Creates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Full, entityType = {Network.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateNetworkCmdByAdmin extends CreateNetworkCmd implements AdminCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateNetworkCmdByAdmin.class.getName());
 
     @Parameter(name=ApiConstants.VLAN, type=CommandType.STRING, description="the ID or VID of the network")
     private String vlan;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
index 2112be34543..f2b1a18831a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
@@ -29,7 +29,6 @@ import org.apache.cloudstack.api.response.DomainResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -50,7 +49,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createNetworkOffering", description = "Creates a network offering.", responseObject = NetworkOfferingResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateNetworkOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateNetworkOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
index 294ee047fe6..7eb52b92456 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.network;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -40,7 +39,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createPhysicalNetwork", description = "Creates a physical network", responseObject = PhysicalNetworkResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreatePhysicalNetworkCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateStorageNetworkIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateStorageNetworkIpRangeCmd.java
index d2dc3d8688f..42262cc2bf1 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateStorageNetworkIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateStorageNetworkIpRangeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -42,7 +41,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class CreateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateStorageNetworkIpRangeCmd.class);
 
 
     /////////////////////////////////////////////////////
@@ -119,7 +117,7 @@ public class CreateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
             response.setResponseName(getCommandName());
             this.setResponseObject(response);
         } catch (Exception e) {
-            s_logger.warn("Create storage network IP range failed", e);
+            logger.warn("Create storage network IP range failed", e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DedicateGuestVlanRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DedicateGuestVlanRangeCmd.java
index e6a289d096b..355f738679e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DedicateGuestVlanRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DedicateGuestVlanRangeCmd.java
@@ -18,7 +18,6 @@
  */
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "dedicateGuestVlanRange", description = "Dedicates a guest vlan range to an account", responseObject = GuestVlanRangeResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DedicateGuestVlanRangeCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DedicateGuestVlanRangeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteGuestNetworkIpv6PrefixCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteGuestNetworkIpv6PrefixCmd.java
index 67d309456d6..e2ada4191a8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteGuestNetworkIpv6PrefixCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteGuestNetworkIpv6PrefixCmd.java
@@ -26,7 +26,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.DataCenterGuestIpv6PrefixResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.ConcurrentOperationException;
@@ -45,7 +44,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
         responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin})
 public class DeleteGuestNetworkIpv6PrefixCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteGuestNetworkIpv6PrefixCmd.class);
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteManagementNetworkIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteManagementNetworkIpRangeCmd.java
index abb72eb2724..41cf5e518b3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteManagementNetworkIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteManagementNetworkIpRangeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.ApiArgValidator;
@@ -42,7 +41,6 @@ import com.cloud.user.Account;
         responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin})
 public class DeleteManagementNetworkIpRangeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteManagementNetworkIpRangeCmd.class);
 
 
     /////////////////////////////////////////////////////
@@ -112,13 +110,13 @@ public class DeleteManagementNetworkIpRangeCmd extends BaseAsyncCmd {
             SuccessResponse response = new SuccessResponse(getCommandName());
             this.setResponseObject(response);
         } catch (ResourceUnavailableException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
         } catch (ConcurrentOperationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         } catch (Exception e) {
-            s_logger.warn("Failed to delete management ip range from " + getStartIp() + " to " + getEndIp() + " of Pod: " + getPodId(), e);
+            logger.warn("Failed to delete management ip range from " + getStartIp() + " to " + getEndIp() + " of Pod: " + getPodId(), e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
index d7e8744d6b7..89a36d0b94f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.network;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -40,7 +39,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 @APICommand(name = "deleteNetworkDevice", description = "Deletes network device.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteNetworkDeviceCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteNetworkDeviceCmd.class);
 
     @Inject
     ExternalNetworkDeviceManager nwDeviceMgr;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkOfferingCmd.java
index 80ce48cc7d9..e0598b71ea1 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkOfferingCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteNetworkOffering", description = "Deletes a network offering.", responseObject = SuccessResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteNetworkOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteNetworkOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkServiceProviderCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkServiceProviderCmd.java
index 1ccfff5d7ba..4b56612fdda 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkServiceProviderCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkServiceProviderCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteNetworkServiceProvider", description = "Deletes a Network Service Provider.", responseObject = SuccessResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteNetworkServiceProviderCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteNetworkServiceProviderCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -78,10 +76,10 @@ public class DeleteNetworkServiceProviderCmd extends BaseAsyncCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete network service provider");
             }
         } catch (ResourceUnavailableException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
         } catch (ConcurrentOperationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
index 79f0685c6c6..3233130211c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deletePhysicalNetwork", description = "Deletes a Physical Network.", responseObject = SuccessResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeletePhysicalNetworkCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeletePhysicalNetworkCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteStorageNetworkIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteStorageNetworkIpRangeCmd.java
index b5de43dc5e2..454dfba92f2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteStorageNetworkIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteStorageNetworkIpRangeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteStorageNetworkIpRange", description = "Deletes a storage network IP Range.", responseObject = SuccessResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteStorageNetworkIpRangeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteStorageNetworkIpRangeCmd.class);
 
 
     /////////////////////////////////////////////////////
@@ -77,7 +75,7 @@ public class DeleteStorageNetworkIpRangeCmd extends BaseAsyncCmd {
             SuccessResponse response = new SuccessResponse(getCommandName());
             this.setResponseObject(response);
         } catch (Exception e) {
-            s_logger.warn("Failed to delete storage network ip range " + getId(), e);
+            logger.warn("Failed to delete storage network ip range " + getId(), e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListDedicatedGuestVlanRangesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListDedicatedGuestVlanRangesCmd.java
index 67324d81927..0247a306921 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListDedicatedGuestVlanRangesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListDedicatedGuestVlanRangesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.network;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -39,7 +38,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listDedicatedGuestVlanRanges", description = "Lists dedicated guest vlan ranges", responseObject = GuestVlanRangeResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListDedicatedGuestVlanRangesCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListDedicatedGuestVlanRangesCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListGuestVlansCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListGuestVlansCmd.java
index 1daeac9c53d..4b368f5e034 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListGuestVlansCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListGuestVlansCmd.java
@@ -22,7 +22,6 @@ import java.util.List;
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -39,7 +38,6 @@ import com.cloud.utils.Pair;
         since = "4.17.0",
         authorized = {RoleType.Admin})
 public class ListGuestVlansCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListGuestVlansCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
index 405c2654bdf..768bab64108 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
@@ -22,7 +22,6 @@ import java.util.Map;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -45,7 +44,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 @APICommand(name = "listNetworkDevice", description = "List network devices", responseObject = NetworkDeviceResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListNetworkDeviceCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListNetworkDeviceCmd.class);
     private static final String s_name = "listnetworkdevice";
 
     @Inject
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListNetworkServiceProvidersCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListNetworkServiceProvidersCmd.java
index 67fc8292a93..68495a62215 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListNetworkServiceProvidersCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListNetworkServiceProvidersCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.network;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -40,7 +39,6 @@ import com.cloud.utils.Pair;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class ListNetworkServiceProvidersCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListNetworkServiceProvidersCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListPhysicalNetworksCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListPhysicalNetworksCmd.java
index b8f30d3f7a1..51a6ddabd9f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListPhysicalNetworksCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListPhysicalNetworksCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.network;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -38,7 +37,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listPhysicalNetworks", description = "Lists physical networks", responseObject = PhysicalNetworkResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListPhysicalNetworksCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListPhysicalNetworksCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListStorageNetworkIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListStorageNetworkIpRangeCmd.java
index c22ec8ee19b..556162ca360 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListStorageNetworkIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListStorageNetworkIpRangeCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.network;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -42,7 +41,6 @@ import com.cloud.user.Account;
 @APICommand(name = "listStorageNetworkIpRange", description = "List a storage network IP range.", responseObject = StorageNetworkIpRangeResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListStorageNetworkIpRangeCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListStorageNetworkIpRangeCmd.class);
 
     String _name = "liststoragenetworkiprangeresponse";
 
@@ -99,7 +97,7 @@ public class ListStorageNetworkIpRangeCmd extends BaseListCmd {
             response.setResponseName(getCommandName());
             this.setResponseObject(response);
         } catch (Exception e) {
-            s_logger.warn("Failed to list storage network ip range for rangeId=" + getRangeId() + " podId=" + getPodId() + " zoneId=" + getZoneId());
+            logger.warn("Failed to list storage network ip range for rangeId=" + getRangeId() + " podId=" + getPodId() + " zoneId=" + getZoneId());
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListSupportedNetworkServicesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListSupportedNetworkServicesCmd.java
index 361da2d0db4..120c6af41ad 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListSupportedNetworkServicesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ListSupportedNetworkServicesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.network;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -40,7 +39,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class ListSupportedNetworkServicesCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListSupportedNetworkServicesCmd.class.getName());
 
     @Parameter(name = ApiConstants.PROVIDER, type = CommandType.STRING, description = "network service provider name")
     private String providerName;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/MigrateNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/MigrateNetworkCmd.java
index b38e8f453b0..8ef853b99da 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/MigrateNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/MigrateNetworkCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -48,7 +47,6 @@ import com.cloud.user.User;
             since = "4.11.0",
             authorized = {RoleType.Admin})
 public class MigrateNetworkCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(MigrateNetworkCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/MigrateVPCCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/MigrateVPCCmd.java
index cca367ce750..3e0801be40b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/MigrateVPCCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/MigrateVPCCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.network;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.acl.SecurityChecker;
@@ -50,7 +49,6 @@ import com.cloud.user.User;
             since = "4.11.0",
             authorized = {RoleType.Admin})
 public class MigrateVPCCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(MigrateVPCCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
index 916357920a1..b3125ec3668 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
 @APICommand(name = "releaseDedicatedGuestVlanRange", description = "Releases a dedicated guest vlan range to the system", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ReleaseDedicatedGuestVlanRangeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(ReleaseDedicatedGuestVlanRangeCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkOfferingCmd.java
index e8f9e5f8cfe..75fb45e1f11 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkOfferingCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.NetworkOfferingResponse;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.dc.DataCenter;
 import com.cloud.domain.Domain;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateNetworkOffering", description = "Updates a network offering.", responseObject = NetworkOfferingResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateNetworkOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateNetworkOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkServiceProviderCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkServiceProviderCmd.java
index 1bbf21b85ed..b4801d9368e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkServiceProviderCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkServiceProviderCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.network;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -40,7 +39,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class UpdateNetworkServiceProviderCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateNetworkServiceProviderCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java
index 24fd93f49d1..162116470bd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.network;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updatePhysicalNetwork", description = "Updates a physical network", responseObject = PhysicalNetworkResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdatePhysicalNetworkCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdatePhysicalNetworkCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePodManagementNetworkIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePodManagementNetworkIpRangeCmd.java
index 4e880f122d8..6f90a070f0d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePodManagementNetworkIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePodManagementNetworkIpRangeCmd.java
@@ -26,7 +26,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.PodResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.ConcurrentOperationException;
@@ -42,7 +41,6 @@ import com.cloud.user.Account;
         authorized = {RoleType.Admin})
 public class UpdatePodManagementNetworkIpRangeCmd extends BaseAsyncCmd {
 
-    public static final Logger s_logger = Logger.getLogger(UpdatePodManagementNetworkIpRangeCmd.class);
 
 
     /////////////////////////////////////////////////////
@@ -138,10 +136,10 @@ public class UpdatePodManagementNetworkIpRangeCmd extends BaseAsyncCmd {
             SuccessResponse response = new SuccessResponse(getCommandName());
             this.setResponseObject(response);
         } catch (ConcurrentOperationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         } catch (Exception e) {
-            s_logger.warn("Failed to update pod management IP range " + getNewStartIP() + "-" + getNewEndIP() + " of Pod: " + getPodId(), e);
+            logger.warn("Failed to update pod management IP range " + getNewStartIP() + "-" + getNewEndIP() + " of Pod: " + getPodId(), e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateStorageNetworkIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateStorageNetworkIpRangeCmd.java
index 459c89debc9..65e2437417d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateStorageNetworkIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateStorageNetworkIpRangeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.network;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -41,7 +40,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class UpdateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateStorageNetworkIpRangeCmd.class);
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -107,7 +105,7 @@ public class UpdateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
             response.setResponseName(getCommandName());
             this.setResponseObject(response);
         } catch (Exception e) {
-            s_logger.warn("Update storage network IP range failed", e);
+            logger.warn("Update storage network IP range failed", e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java
index c2d8b3b6839..c46e4cd6b44 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java
@@ -37,7 +37,6 @@ import org.apache.cloudstack.api.response.ZoneResponse;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.offering.DiskOffering;
 import com.cloud.offering.ServiceOffering;
@@ -47,7 +46,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createDiskOffering", description = "Creates a disk offering.", responseObject = DiskOfferingResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateDiskOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateDiskOfferingCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java
index d947f6f0659..4562aa7da19 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java
@@ -37,7 +37,6 @@ import org.apache.cloudstack.api.response.DiskOfferingResponse;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.offering.ServiceOffering;
@@ -47,7 +46,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createServiceOffering", description = "Creates a service offering.", responseObject = ServiceOfferingResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateServiceOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateServiceOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/DeleteDiskOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/DeleteDiskOfferingCmd.java
index 0159cd297f9..591b09c60a5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/DeleteDiskOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/DeleteDiskOfferingCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.offering;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteDiskOffering", description = "Updates a disk offering.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteDiskOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteDiskOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/DeleteServiceOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/DeleteServiceOfferingCmd.java
index 9b7f9d48e30..19203289d10 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/DeleteServiceOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/DeleteServiceOfferingCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.offering;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteServiceOffering", description = "Deletes a service offering.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteServiceOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteServiceOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateDiskOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateDiskOfferingCmd.java
index 1d5898ea4a0..1bc0f2feb7c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateDiskOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateDiskOfferingCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.DiskOfferingResponse;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.dc.DataCenter;
 import com.cloud.domain.Domain;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateDiskOffering", description = "Updates a disk offering.", responseObject = DiskOfferingResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateDiskOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateDiskOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateServiceOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateServiceOfferingCmd.java
index d86564a60c6..5a96212af04 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateServiceOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateServiceOfferingCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.ServiceOfferingResponse;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.dc.DataCenter;
 import com.cloud.domain.Domain;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateServiceOffering", description = "Updates a service offering.", responseObject = ServiceOfferingResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateServiceOfferingCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateServiceOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/CreatePodCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/CreatePodCmd.java
index b15854ca875..c1d9a6db429 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/CreatePodCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/CreatePodCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.pod;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createPod", description = "Creates a new Pod.", responseObject = PodResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreatePodCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreatePodCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/DeletePodCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/DeletePodCmd.java
index bdb9ef26694..c1de800d745 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/DeletePodCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/DeletePodCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.pod;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -33,7 +32,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deletePod", description = "Deletes a Pod.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeletePodCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeletePodCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/ListPodsByCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/ListPodsByCmd.java
index c0e26a32eee..5ad0b457ced 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/ListPodsByCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/ListPodsByCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.pod;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listPods", description = "Lists all Pods.", responseObject = PodResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListPodsByCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListPodsByCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/UpdatePodCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/UpdatePodCmd.java
index 99ab5e1cee4..7dae6f4c7cf 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/UpdatePodCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/UpdatePodCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.pod;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -33,7 +32,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updatePod", description = "Updates a Pod.", responseObject = PodResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdatePodCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdatePodCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java
index 61bf32ab822..3a93a275042 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.region;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "addRegion", description = "Adds a Region", responseObject = RegionResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddRegionCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddRegionCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/CreatePortableIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/CreatePortableIpRangeCmd.java
index 61deceb0691..fd103c83830 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/CreatePortableIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/CreatePortableIpRangeCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.admin.region;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
             responseHasSensitiveInfo = false)
 public class CreatePortableIpRangeCmd extends BaseAsyncCreateCmd {
 
-    public static final Logger s_logger = Logger.getLogger(CreatePortableIpRangeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -126,7 +124,7 @@ public class CreatePortableIpRangeCmd extends BaseAsyncCreateCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create portable public IP range");
             }
         } catch (ConcurrentOperationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/DeletePortableIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/DeletePortableIpRangeCmd.java
index 6cc884645e9..3ff46fcc94d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/DeletePortableIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/DeletePortableIpRangeCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.admin.region;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deletePortableIpRange", description = "deletes a range of portable public IP's associated with a region", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeletePortableIpRangeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeletePortableIpRangeCmd.class.getName());
 
     private static final String s_name = "deleteportablepublicipresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/ListPortableIpRangesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/ListPortableIpRangesCmd.java
index ed0ddd68aca..e654da6df44 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/ListPortableIpRangesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/ListPortableIpRangesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.region;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListPortableIpRangesCmd extends BaseListCmd {
 
-    public static final Logger s_logger = Logger.getLogger(ListPortableIpRangesCmd.class.getName());
 
     private static final String s_name = "listportableipresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/RemoveRegionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/RemoveRegionCmd.java
index 180e34c7a8f..3ea323eebfb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/RemoveRegionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/RemoveRegionCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.region;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "removeRegion", description = "Removes specified region", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class RemoveRegionCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(RemoveRegionCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java
index c772efd5e1f..4267f6a2c28 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.region;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateRegion", description = "Updates a region", responseObject = RegionResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateRegionCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateRegionCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ArchiveAlertsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ArchiveAlertsCmd.java
index 003b823e106..dc8c15cf09d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ArchiveAlertsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ArchiveAlertsCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.resource;
 import java.util.Date;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ArchiveAlertsCmd extends BaseCmd {
 
-    public static final Logger s_logger = Logger.getLogger(ArchiveAlertsCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/CleanVMReservationsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/CleanVMReservationsCmd.java
index 9acc71ce693..1ae8c944123 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/CleanVMReservationsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/CleanVMReservationsCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.resource;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiErrorCode;
@@ -31,7 +30,6 @@ import com.cloud.user.Account;
 @APICommand(name = "cleanVMReservations", description = "Cleanups VM reservations in the database.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CleanVMReservationsCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(CleanVMReservationsCmd.class.getName());
 
     private static final String s_name = "cleanvmreservationresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/DeleteAlertsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/DeleteAlertsCmd.java
index eb384892758..9262a120f72 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/DeleteAlertsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/DeleteAlertsCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.resource;
 import java.util.Date;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteAlertsCmd extends BaseCmd {
 
-    public static final Logger s_logger = Logger.getLogger(DeleteAlertsCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
index 3471ab60837..64cf691e6a7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
@@ -25,7 +25,6 @@ import org.apache.cloudstack.api.BaseListCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.AlertResponse;
 import org.apache.cloudstack.api.response.ListResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.alert.Alert;
 import com.cloud.utils.Pair;
@@ -34,7 +33,6 @@ import com.cloud.utils.Pair;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListAlertsCmd extends BaseListCmd {
 
-    public static final Logger s_logger = Logger.getLogger(ListAlertsCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListCapacityCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListCapacityCmd.java
index 253677616f0..17a648f3a39 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListCapacityCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListCapacityCmd.java
@@ -21,7 +21,6 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -40,7 +39,6 @@ import com.cloud.exception.InvalidParameterValueException;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListCapacityCmd extends BaseListCmd {
 
-    public static final Logger s_logger = Logger.getLogger(ListCapacityCmd.class.getName());
     private static final DecimalFormat s_percentFormat = new DecimalFormat("##.##");
 
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/StartRollingMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/StartRollingMaintenanceCmd.java
index 7ee3e50e0cd..04fa1002611 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/StartRollingMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/StartRollingMaintenanceCmd.java
@@ -34,7 +34,6 @@ import org.apache.cloudstack.api.response.PodResponse;
 import org.apache.cloudstack.api.response.RollingMaintenanceResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.ConcurrentOperationException;
@@ -55,7 +54,6 @@ public class StartRollingMaintenanceCmd extends BaseAsyncCmd {
     @Inject
     RollingMaintenanceManager manager;
 
-    public static final Logger s_logger = Logger.getLogger(StartRollingMaintenanceCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/UploadCustomCertificateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/UploadCustomCertificateCmd.java
index 5dfada57216..c5ae6890c3e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/UploadCustomCertificateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/UploadCustomCertificateCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.resource;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
             description = "Uploads a custom certificate for the console proxy VMs to use for SSL. Can be used to upload a single certificate signed by a known CA. Can also be used, through multiple calls, to upload a chain of certificates from CA to the custom certificate itself.",
             requestHasSensitiveInfo = true, responseHasSensitiveInfo = false)
 public class UploadCustomCertificateCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(UploadCustomCertificateCmd.class.getName());
 
 
     @Parameter(name = ApiConstants.CERTIFICATE, type = CommandType.STRING, required = true, description = "The certificate to be uploaded.", length = 65535)
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/DeleteResourceIconCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/DeleteResourceIconCmd.java
index 8fb02ea7054..e97a68bddcb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/DeleteResourceIconCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/DeleteResourceIconCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 import java.util.List;
 
@@ -37,7 +36,6 @@ import java.util.List;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin, RoleType.DomainAdmin, RoleType.ResourceAdmin, RoleType.User})
 public class DeleteResourceIconCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteResourceIconCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/ListResourceIconCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/ListResourceIconCmd.java
index 0af11ceec22..6cc3173cf15 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/ListResourceIconCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/ListResourceIconCmd.java
@@ -26,7 +26,6 @@ import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.ResourceIconResponse;
-import org.apache.log4j.Logger;
 
 import java.util.List;
 
@@ -35,7 +34,6 @@ import java.util.List;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin, RoleType.DomainAdmin, RoleType.ResourceAdmin, RoleType.User})
 public class ListResourceIconCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(ListResourceIconCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/UploadResourceIconCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/UploadResourceIconCmd.java
index ea5d8995a2a..5a6acd961bf 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/UploadResourceIconCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/icon/UploadResourceIconCmd.java
@@ -31,7 +31,6 @@ import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import java.awt.image.BufferedImage;
 
@@ -46,7 +45,6 @@ import java.util.List;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin, RoleType.DomainAdmin, RoleType.ResourceAdmin, RoleType.User})
 public class UploadResourceIconCmd extends BaseCmd {
-    public static final Logger LOGGER = Logger.getLogger(UploadResourceIconCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -120,7 +118,7 @@ public class UploadResourceIconCmd extends BaseCmd {
                 return false;
             }
         } catch (Exception e) {
-            LOGGER.warn("Data uploaded not a valid image");
+            logger.warn("Data uploaded not a valid image");
             return false;
         }
         return true;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureOvsElementCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureOvsElementCmd.java
index a1b01a1c04f..4a8c0bc3a3b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureOvsElementCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureOvsElementCmd.java
@@ -29,7 +29,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.OvsProviderResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.ConcurrentOperationException;
@@ -42,8 +41,6 @@ import com.cloud.user.Account;
 @APICommand(name = "configureOvsElement", responseObject = OvsProviderResponse.class, description = "Configures an ovs element.",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ConfigureOvsElementCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger
-        .getLogger(ConfigureOvsElementCmd.class.getName());
     @Inject
     private List<VirtualRouterElementService> _service;
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
index b7f7a050d07..aa119f3aca7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
@@ -20,7 +20,6 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
 @APICommand(name = "configureVirtualRouterElement", responseObject = VirtualRouterProviderResponse.class, description = "Configures a virtual router element.",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ConfigureVirtualRouterElementCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(ConfigureVirtualRouterElementCmd.class.getName());
 
     @Inject
     private List<VirtualRouterElementService> _service;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
index f93ca35a06a..e85531c83c4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
@@ -20,7 +20,6 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createVirtualRouterElement", responseObject = VirtualRouterProviderResponse.class, description = "Create a virtual router element.",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateVirtualRouterElementCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateVirtualRouterElementCmd.class.getName());
 
     @Inject
     private List<VirtualRouterElementService> _service;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
index d2dce6b9ff3..39ccee47fbe 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.router;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -38,7 +37,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "destroyRouter", description = "Destroys a router.", responseObject = DomainRouterResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DestroyRouterCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DestroyRouterCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/GetRouterHealthCheckResultsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/GetRouterHealthCheckResultsCmd.java
index 93a48eba49c..4bef26e0555 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/GetRouterHealthCheckResultsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/GetRouterHealthCheckResultsCmd.java
@@ -30,7 +30,6 @@ import org.apache.cloudstack.api.response.RouterHealthCheckResultResponse;
 import org.apache.cloudstack.api.response.RouterHealthCheckResultsListResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.commons.lang.BooleanUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.exception.ResourceUnavailableException;
@@ -47,7 +46,6 @@ import com.cloud.vm.VirtualMachine;
         responseHasSensitiveInfo = false,
         since = "4.14.0")
 public class GetRouterHealthCheckResultsCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(GetRouterHealthCheckResultsCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListOvsElementsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListOvsElementsCmd.java
index 89b39f87e44..a267aa52669 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListOvsElementsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListOvsElementsCmd.java
@@ -26,11 +26,9 @@ import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.BaseListCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.OvsProviderResponse;
 import org.apache.cloudstack.api.response.ProviderResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.exception.ConcurrentOperationException;
 import com.cloud.exception.InsufficientCapacityException;
@@ -42,8 +40,7 @@ import com.cloud.network.element.VirtualRouterElementService;
 @APICommand(name = "listOvsElements", description = "Lists all available ovs elements.", responseObject = OvsProviderResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListOvsElementsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger
-        .getLogger(ListNetworkOfferingsCmd.class.getName());
+
     @Inject
     private List<VirtualRouterElementService> _service;
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
index 6e955e46212..e0cdc0dcf80 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.router;
 
 import org.apache.commons.lang.BooleanUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -40,7 +39,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "listRouters", description = "List routers.", responseObject = DomainRouterResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListRoutersCmd extends BaseListProjectAndAccountResourcesCmd {
-    public static final Logger s_logger = Logger.getLogger(ListRoutersCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListVirtualRouterElementsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListVirtualRouterElementsCmd.java
index 6eb24dce074..424b8c29d04 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListVirtualRouterElementsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListVirtualRouterElementsCmd.java
@@ -21,7 +21,6 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -42,7 +41,6 @@ import com.cloud.network.element.VirtualRouterElementService;
 @APICommand(name = "listVirtualRouterElements", description = "Lists all available virtual router elements.", responseObject = VirtualRouterProviderResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListVirtualRouterElementsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListVirtualRouterElementsCmd.class.getName());
 
     // TODO, VirtualRouterElementServer is not singleton in system!
     @Inject
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
index 6e334d7e442..1d97dd80309 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.router;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -39,7 +38,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "rebootRouter", description = "Starts a router.", responseObject = DomainRouterResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class RebootRouterCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(RebootRouterCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
index 121b2a1bd11..24ab7881037 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.router;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -41,7 +40,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "startRouter", responseObject = DomainRouterResponse.class, description = "Starts a router.", entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class StartRouterCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(StartRouterCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
index 2da38d90426..971086a57cf 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.router;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -40,7 +39,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "stopRouter", description = "Stops a router.", responseObject = DomainRouterResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class StopRouterCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(StopRouterCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterCmd.java
index 2d5255614c6..3265a089d67 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.router;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "changeServiceForRouter", description = "Upgrades domain router to a new service offering", responseObject = DomainRouterResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpgradeRouterCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpgradeRouterCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterTemplateCmd.java
index fa0fe5800ee..74464cab315 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterTemplateCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.router;
 
 import java.util.List;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
 @APICommand(name = "upgradeRouterTemplate", description = "Upgrades router to use newer template", responseObject = BaseResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpgradeRouterTemplateCmd extends org.apache.cloudstack.api.BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpgradeRouterTemplateCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java
index b8ab1461a2b..7c8f0e21afb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java
@@ -21,7 +21,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "addImageStore", description = "Adds backup image store.", responseObject = ImageStoreResponse.class, since = "4.2.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddImageStoreCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddImageStoreCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -137,7 +135,7 @@ public class AddImageStoreCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add secondary storage");
             }
         } catch (DiscoveryException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddImageStoreS3CMD.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddImageStoreS3CMD.java
index 34ff171b91f..2fe3c7cd106 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddImageStoreS3CMD.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddImageStoreS3CMD.java
@@ -38,7 +38,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import com.cloud.utils.storage.S3.ClientOptions;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -59,7 +58,6 @@ import com.cloud.storage.ImageStore;
 @APICommand(name = "addImageStoreS3", description = "Adds S3 Image Store", responseObject = ImageStoreResponse.class, since = "4.7.0",
         requestHasSensitiveInfo = true, responseHasSensitiveInfo = false)
 public final class AddImageStoreS3CMD extends BaseCmd implements ClientOptions {
-    public static final Logger s_logger = Logger.getLogger(AddImageStoreS3CMD.class.getName());
 
     private static final String s_name = "addImageStoreS3Response";
 
@@ -141,7 +139,7 @@ public final class AddImageStoreS3CMD extends BaseCmd implements ClientOptions {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add S3 Image Store.");
             }
         } catch (DiscoveryException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddObjectStoragePoolCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddObjectStoragePoolCmd.java
index a538962e076..b779ba2a2b4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddObjectStoragePoolCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddObjectStoragePoolCmd.java
@@ -25,7 +25,6 @@ import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.ObjectStoreResponse;
-import org.apache.log4j.Logger;
 
 import java.util.Collection;
 import java.util.HashMap;
@@ -35,7 +34,6 @@ import java.util.Map;
 @APICommand(name = "addObjectStoragePool", description = "Adds a object storage pool", responseObject = ObjectStoreResponse.class, since = "4.19.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddObjectStoragePoolCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddObjectStoragePoolCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -125,7 +123,7 @@ public class AddObjectStoragePoolCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add object storage");
             }
         } catch (Exception ex) {
-            s_logger.error("Exception: ", ex);
+            logger.error("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
index a694aba30fb..7e925f286d0 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.storage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
 @APICommand(name = "cancelStorageMaintenance", description = "Cancels maintenance for primary storage", responseObject = StoragePoolResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(CancelPrimaryStorageMaintenanceCmd.class.getName());
 
     private static final String s_name = "cancelprimarystoragemaintenanceresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmd.java
index 08069446893..5776eb6464c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmd.java
@@ -21,7 +21,6 @@ package org.apache.cloudstack.api.command.admin.storage;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -38,7 +37,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createSecondaryStagingStore", description = "create secondary staging store.", responseObject = ImageStoreResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateSecondaryStagingStoreCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateSecondaryStagingStoreCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -113,7 +111,7 @@ public class CreateSecondaryStagingStoreCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add secondary storage");
             }
         } catch (Exception ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CreateStoragePoolCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CreateStoragePoolCmd.java
index 477d7570dfa..75813a7aabf 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CreateStoragePoolCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CreateStoragePoolCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.storage;
 import java.net.UnknownHostException;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -41,7 +40,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createStoragePool", description = "Creates a storage pool.", responseObject = StoragePoolResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateStoragePoolCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateStoragePoolCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -170,13 +168,13 @@ public class CreateStoragePoolCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add storage pool");
             }
         } catch (ResourceUnavailableException ex1) {
-            s_logger.warn("Exception: ", ex1);
+            logger.warn("Exception: ", ex1);
             throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex1.getMessage());
         } catch (ResourceInUseException ex2) {
-            s_logger.warn("Exception: ", ex2);
+            logger.warn("Exception: ", ex2);
             throw new ServerApiException(ApiErrorCode.RESOURCE_IN_USE_ERROR, ex2.getMessage());
         } catch (UnknownHostException ex3) {
-            s_logger.warn("Exception: ", ex3);
+            logger.warn("Exception: ", ex3);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex3.getMessage());
         } catch (Exception ex4) {
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex4.getMessage());
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteImageStoreCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteImageStoreCmd.java
index 194f0baf603..50a9d9a6f39 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteImageStoreCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteImageStoreCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.storage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteImageStore", description = "Deletes an image store or Secondary Storage.", responseObject = SuccessResponse.class, since = "4.2.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteImageStoreCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteImageStoreCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteObjectStoragePoolCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteObjectStoragePoolCmd.java
index ed305d9689d..6cb38d4c862 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteObjectStoragePoolCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteObjectStoragePoolCmd.java
@@ -25,12 +25,10 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.ObjectStoreResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "deleteObjectStoragePool", description = "Deletes an Object Storage Pool", responseObject = SuccessResponse.class, since = "4.19.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteObjectStoragePoolCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteObjectStoragePoolCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeletePoolCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeletePoolCmd.java
index d87768e7f39..28f71e0740f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeletePoolCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeletePoolCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.storage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteStoragePool", description = "Deletes a storage pool.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeletePoolCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeletePoolCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteSecondaryStagingStoreCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteSecondaryStagingStoreCmd.java
index 34a26461fa8..a0c2731ccda 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteSecondaryStagingStoreCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteSecondaryStagingStoreCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.storage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteSecondaryStagingStore", description = "Deletes a secondary staging store .", responseObject = SuccessResponse.class, since = "4.2.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteSecondaryStagingStoreCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteSecondaryStagingStoreCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java
index 699f4831415..0848f4bd7ad 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java
@@ -30,7 +30,6 @@ import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.VolumeResponse;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.storage.StoragePool;
 import com.cloud.utils.Pair;
@@ -38,7 +37,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "findStoragePoolsForMigration", description = "Lists storage pools available for migration of a volume.", responseObject = StoragePoolResponse.class,
 requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class FindStoragePoolsForMigrationCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(FindStoragePoolsForMigrationCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListImageStoresCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListImageStoresCmd.java
index a9eac3ed76d..5270569de44 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListImageStoresCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListImageStoresCmd.java
@@ -23,12 +23,10 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.ImageStoreResponse;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "listImageStores", description = "Lists image stores.", responseObject = ImageStoreResponse.class, since = "4.2.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListImageStoresCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListImageStoresCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListObjectStoragePoolsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListObjectStoragePoolsCmd.java
index 9d8d8eccc3c..005a1a54444 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListObjectStoragePoolsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListObjectStoragePoolsCmd.java
@@ -23,13 +23,11 @@ import org.apache.cloudstack.api.BaseListCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.ObjectStoreResponse;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "listObjectStoragePools", description = "Lists object storage pools.", responseObject = ObjectStoreResponse.class, since = "4.19.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
 public class ListObjectStoragePoolsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListObjectStoragePoolsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListSecondaryStagingStoresCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListSecondaryStagingStoresCmd.java
index e315c8a6d47..0cad16a247f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListSecondaryStagingStoresCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListSecondaryStagingStoresCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.storage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -29,7 +28,6 @@ import org.apache.cloudstack.api.response.ZoneResponse;
 @APICommand(name = "listSecondaryStagingStores", description = "Lists secondary staging stores.", responseObject = ImageStoreResponse.class, since = "4.2.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListSecondaryStagingStoresCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListSecondaryStagingStoresCmd.class.getName());
 
     private static final String s_name = "listsecondarystagingstoreresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStoragePoolsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStoragePoolsCmd.java
index 6923353b3bf..293ed3103cb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStoragePoolsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStoragePoolsCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.storage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -33,7 +32,6 @@ import org.apache.cloudstack.api.response.ZoneResponse;
 @APICommand(name = "listStoragePools", description = "Lists storage pools.", responseObject = StoragePoolResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListStoragePoolsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListStoragePoolsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageProvidersCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageProvidersCmd.java
index 347b66061f6..efe7a23b5cb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageProvidersCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageProvidersCmd.java
@@ -20,7 +20,6 @@ package org.apache.cloudstack.api.command.admin.storage;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -40,7 +39,6 @@ import com.cloud.exception.ResourceUnavailableException;
 @APICommand(name = "listStorageProviders", description = "Lists storage providers.", responseObject = StorageProviderResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListStorageProvidersCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListStorageProvidersCmd.class.getName());
 
     @Parameter(name = ApiConstants.TYPE, type = CommandType.STRING, description = "the type of storage provider: either primary or image", required = true)
     private String type;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageTagsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageTagsCmd.java
index 43981ee1a3d..d9bb5d4cd93 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageTagsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageTagsCmd.java
@@ -18,7 +18,6 @@
  */
 package org.apache.cloudstack.api.command.admin.storage;
 
-import org.apache.log4j.Logger;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
 import org.apache.cloudstack.api.BaseListCmd;
@@ -27,7 +26,6 @@ import org.apache.cloudstack.api.response.StorageTagResponse;
 
 @APICommand(name = "listStorageTags", description = "Lists storage tags", responseObject = StorageTagResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListStorageTagsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListStorageTagsCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/MigrateSecondaryStorageDataCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/MigrateSecondaryStorageDataCmd.java
index de9b55a9ff1..8f5a7aced3f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/MigrateSecondaryStorageDataCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/MigrateSecondaryStorageDataCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.ImageStoreResponse;
 import org.apache.cloudstack.api.response.MigrationResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 
@@ -41,7 +40,6 @@ import com.cloud.event.EventTypes;
         authorized = {RoleType.Admin})
 public class MigrateSecondaryStorageDataCmd extends BaseAsyncCmd {
 
-    public static final Logger LOGGER = Logger.getLogger(MigrateSecondaryStorageDataCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
index ddabefb14c8..818b3a5bbea 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.storage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "enableStorageMaintenance", description = "Puts storage pool into maintenance state", responseObject = StoragePoolResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class PreparePrimaryStorageForMaintenanceCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(PreparePrimaryStorageForMaintenanceCmd.class.getName());
     private static final String s_name = "prepareprimarystorageformaintenanceresponse";
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/SyncStoragePoolCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/SyncStoragePoolCmd.java
index d7a783a4ff4..9f81f2f6c86 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/SyncStoragePoolCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/SyncStoragePoolCmd.java
@@ -33,7 +33,6 @@ import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.ApiErrorCode;
 import org.apache.cloudstack.context.CallContext;
 
-import java.util.logging.Logger;
 
 @APICommand(name = "syncStoragePool",
         description = "Sync storage pool with management server (currently supported for Datastore Cluster in VMware and syncs the datastores in it)",
@@ -45,7 +44,6 @@ import java.util.logging.Logger;
         )
 public class SyncStoragePoolCmd extends BaseAsyncCmd {
 
-    public static final Logger LOGGER = Logger.getLogger(SyncStoragePoolCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateCloudToUseObjectStoreCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateCloudToUseObjectStoreCmd.java
index 3351d389c6f..5ac34f27bad 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateCloudToUseObjectStoreCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateCloudToUseObjectStoreCmd.java
@@ -21,7 +21,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -38,7 +37,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateCloudToUseObjectStore", description = "Migrate current NFS secondary storages to use object store.", responseObject = ImageStoreResponse.class, since = "4.3.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateCloudToUseObjectStoreCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateCloudToUseObjectStoreCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -130,7 +128,7 @@ public class UpdateCloudToUseObjectStoreCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add secondary storage");
             }
         } catch (DiscoveryException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateImageStoreCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateImageStoreCmd.java
index d7dca93b485..bcc438b957b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateImageStoreCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateImageStoreCmd.java
@@ -25,14 +25,12 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.ImageStoreResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 import com.cloud.storage.ImageStore;
 
 @APICommand(name = UpdateImageStoreCmd.APINAME, description = "Updates image store read-only status", responseObject = ImageStoreResponse.class, entityType = {ImageStore.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.15.0")
 public class UpdateImageStoreCmd extends BaseCmd {
-    private static final Logger LOG = Logger.getLogger(UpdateImageStoreCmd.class.getName());
     public static final String APINAME = "updateImageStore";
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStorageCapabilitiesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStorageCapabilitiesCmd.java
index 8403d3c6241..716c95b45c3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStorageCapabilitiesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStorageCapabilitiesCmd.java
@@ -29,14 +29,12 @@ import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 
 @APICommand(name = "updateStorageCapabilities", description = "Syncs capabilities of storage pools",
         responseObject = StoragePoolResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.16.0")
 public class UpdateStorageCapabilitiesCmd extends BaseCmd {
-    private static final Logger LOG = Logger.getLogger(UpdateStorageCapabilitiesCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java
index 7a907e0f76a..13f02ef83c2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java
@@ -20,7 +20,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateStoragePool", description = "Updates a storage pool.", responseObject = StoragePoolResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateStoragePoolCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateStoragePoolCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/swift/AddSwiftCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/swift/AddSwiftCmd.java
index 7eb87006d0d..bd72f3213de 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/swift/AddSwiftCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/swift/AddSwiftCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.swift;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
 @APICommand(name = "addSwift", description = "Adds Swift.", responseObject = ImageStoreResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddSwiftCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddSwiftCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -102,7 +100,7 @@ public class AddSwiftCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add Swift secondary storage");
             }
         } catch (DiscoveryException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/swift/ListSwiftsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/swift/ListSwiftsCmd.java
index 6d7bfbaf1b1..e21a23349bb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/swift/ListSwiftsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/swift/ListSwiftsCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.swift;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -31,7 +30,6 @@ import com.cloud.user.Account;
 @APICommand(name = "listSwifts", description = "List Swift.", responseObject = ImageStoreResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListSwiftsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListSwiftsCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
index 7ed536f6d4c..7e0faab2fb5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.systemvm;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -37,7 +36,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "destroySystemVm", responseObject = SystemVmResponse.class, description = "Destroys a system virtual machine.", entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DestroySystemVmCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DestroySystemVmCmd.class.getName());
 
 
     @ACL(accessType = AccessType.OperateEntry)
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ListSystemVMsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ListSystemVMsCmd.java
index b6f8c92fa17..e8e5ee0ebad 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ListSystemVMsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ListSystemVMsCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.systemvm;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -39,7 +38,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "listSystemVms", description = "List system virtual machines.", responseObject = SystemVmResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListSystemVMsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListSystemVMsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java
index f0f7aca16c8..ccc6093aa83 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/MigrateSystemVMCmd.java
@@ -31,7 +31,6 @@ import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.SystemVmResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.commons.lang.BooleanUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.ConcurrentOperationException;
@@ -47,7 +46,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "migrateSystemVm", description = "Attempts Migration of a system virtual machine to the host specified.", responseObject = SystemVmResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class MigrateSystemVMCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(MigrateSystemVMCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -171,16 +169,16 @@ public class MigrateSystemVMCmd extends BaseAsyncCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to migrate the system vm");
             }
         } catch (ResourceUnavailableException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
         } catch (ConcurrentOperationException e) {
-            s_logger.warn("Exception: ", e);
+            logger.warn("Exception: ", e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         } catch (ManagementServerException e) {
-            s_logger.warn("Exception: ", e);
+            logger.warn("Exception: ", e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         } catch (VirtualMachineMigrationException e) {
-            s_logger.warn("Exception: ", e);
+            logger.warn("Exception: ", e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/PatchSystemVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/PatchSystemVMCmd.java
index ae3c36b4948..4f4b2631667 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/PatchSystemVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/PatchSystemVMCmd.java
@@ -30,13 +30,11 @@ import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.api.response.SystemVmResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "patchSystemVm", description = "Attempts to live patch systemVMs - CPVM, SSVM ",
         responseObject = SuccessResponse.class, requestHasSensitiveInfo = false,
         responseHasSensitiveInfo = false, authorized = { RoleType.Admin }, since = "4.17.0")
 public class PatchSystemVMCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(PatchSystemVMCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
index 0ba7e0c2edf..30bd51184ac 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.systemvm;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -37,7 +36,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "rebootSystemVm", description = "Reboots a system VM.", responseObject = SystemVmResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class RebootSystemVmCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(RebootSystemVmCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java
index f694988efa0..06e57674c53 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ScaleSystemVMCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.systemvm;
 
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -46,7 +45,6 @@ import com.cloud.vm.VirtualMachine;
         + "The system vm must be in a \"Stopped\" state for " + "this command to take effect.", entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ScaleSystemVMCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(ScaleSystemVMCmd.class.getName());
     private static final String s_name = "changeserviceforsystemvmresponse";
 
     /////////////////////////////////////////////////////
@@ -111,16 +109,16 @@ public class ScaleSystemVMCmd extends BaseAsyncCmd {
         try {
             result = _mgr.upgradeSystemVM(this);
         } catch (ResourceUnavailableException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
         } catch (ConcurrentOperationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         } catch (ManagementServerException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         } catch (VirtualMachineMigrationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
         if (result != null) {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
index 0cb517f4058..eac3d64ab59 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.systemvm;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -37,7 +36,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "startSystemVm", responseObject = SystemVmResponse.class, description = "Starts a system virtual machine.", entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class StartSystemVMCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(StartSystemVMCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
index 4bb533ce5b6..1d84382f5d2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.systemvm;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -39,7 +38,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "stopSystemVm", description = "Stops a system VM.", responseObject = SystemVmResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class StopSystemVmCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(StopSystemVmCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java
index 12f80f32b06..5abe90e3f58 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/UpgradeSystemVMCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.systemvm;
 
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -41,7 +40,6 @@ import com.cloud.vm.VirtualMachine;
         + "The system vm must be in a \"Stopped\" state for " + "this command to take effect.", entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpgradeSystemVMCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpgradeSystemVMCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/template/PrepareTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/template/PrepareTemplateCmd.java
index 9b8d402864a..9a59efb19f2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/template/PrepareTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/template/PrepareTemplateCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.template;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -38,7 +37,6 @@ import com.cloud.user.Account;
 @APICommand(name = "prepareTemplate", responseObject = TemplateResponse.class, description = "load template into primary storage", entityType = {VirtualMachineTemplate.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class PrepareTemplateCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(PrepareTemplateCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficMonitorCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficMonitorCmd.java
index 95593714feb..5c0f1fc1cd2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficMonitorCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficMonitorCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.usage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 @APICommand(name = "addTrafficMonitor", description = "Adds Traffic Monitor Host for Direct Network Usage", responseObject = TrafficMonitorResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddTrafficMonitorCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(AddTrafficMonitorCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
index 809129402a8..b1810676b74 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.usage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "addTrafficType", description = "Adds traffic type to a physical network", responseObject = TrafficTypeResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(AddTrafficTypeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficMonitorCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficMonitorCmd.java
index ff371d6e83d..8fdb3af399c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficMonitorCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficMonitorCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.usage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -33,7 +32,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteTrafficMonitor", description = "Deletes an traffic monitor host.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteTrafficMonitorCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteTrafficMonitorCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficTypeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficTypeCmd.java
index a728690a09d..a1e4ebda09a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficTypeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficTypeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.usage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteTrafficType", description = "Deletes traffic type of a physical network", responseObject = SuccessResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteTrafficTypeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteTrafficTypeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/GenerateUsageRecordsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/GenerateUsageRecordsCmd.java
index 65b864f2ab6..491b0fe85ba 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/GenerateUsageRecordsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/GenerateUsageRecordsCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.usage;
 
 import java.util.Date;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class GenerateUsageRecordsCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(GenerateUsageRecordsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficMonitorsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficMonitorsCmd.java
index f3a65bbfffd..ed42bc42dbd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficMonitorsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficMonitorsCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.usage;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.host.Host;
 @APICommand(name = "listTrafficMonitors", description = "List traffic monitor Hosts.", responseObject = TrafficMonitorResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListTrafficMonitorsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListTrafficMonitorsCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficTypeImplementorsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficTypeImplementorsCmd.java
index 97f43155be6..1ad8872db96 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficTypeImplementorsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficTypeImplementorsCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.usage;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -44,7 +43,6 @@ import com.cloud.utils.Pair;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class ListTrafficTypeImplementorsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListTrafficTypeImplementorsCmd.class);
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficTypesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficTypesCmd.java
index 6e36ca3bd8d..d106a736fca 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficTypesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListTrafficTypesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.usage;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listTrafficTypes", description = "Lists traffic types of a given physical network.", responseObject = ProviderResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListTrafficTypesCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListTrafficTypesCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListUsageTypesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListUsageTypesCmd.java
index 15f9dd20e29..2772743c75a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListUsageTypesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListUsageTypesCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.usage;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.BaseCmd;
@@ -30,7 +29,6 @@ import com.cloud.user.Account;
 @APICommand(name = "listUsageTypes", description = "List Usage Types", responseObject = UsageTypeResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListUsageTypesCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(ListUsageTypesCmd.class.getName());
 
     @Override
     public long getEntityOwnerId() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/RemoveRawUsageRecordsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/RemoveRawUsageRecordsCmd.java
index 710a11c0d7f..3e698e61442 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/RemoveRawUsageRecordsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/RemoveRawUsageRecordsCmd.java
@@ -29,11 +29,9 @@ import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.SuccessResponse;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "removeRawUsageRecords", description = "Safely removes raw records from cloud_usage table", responseObject = SuccessResponse.class, since = "4.6.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class RemoveRawUsageRecordsCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(RemoveRawUsageRecordsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
index 103e58c4e03..c7b3c2b433b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.usage;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateTrafficType", description = "Updates traffic type of a physical network", responseObject = TrafficTypeResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateTrafficTypeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
index e8f5944e407..e2a2baecc86 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
@@ -27,7 +27,6 @@ import org.apache.cloudstack.api.response.DomainResponse;
 import org.apache.cloudstack.api.response.UserResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.user.Account;
 import com.cloud.user.User;
@@ -35,7 +34,6 @@ import com.cloud.user.User;
 @APICommand(name = "createUser", description = "Creates a user for an account that already exists", responseObject = UserResponse.class,
         requestHasSensitiveInfo = true, responseHasSensitiveInfo = true)
 public class CreateUserCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateUserCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
index a4f13d5e9c7..560e449412c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.user;
 import javax.inject.Inject;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -38,7 +37,6 @@ import com.cloud.user.User;
 @APICommand(name = "deleteUser", description = "Deletes a user for an account", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteUserCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteUserCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
index f7a51d0b1d3..974c1c7bebe 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.user;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -39,7 +38,6 @@ import com.cloud.user.UserAccount;
 @APICommand(name = "disableUser", description = "Disables a user account", responseObject = UserResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class DisableUserCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DisableUserCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
index f13eac8f2a9..77d8d530daf 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.admin.user;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.UserAccount;
 @APICommand(name = "enableUser", description = "Enables a user account", responseObject = UserResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class EnableUserCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(EnableUserCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/GetUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/GetUserCmd.java
index 5fcad8068b1..3427cef3366 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/GetUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/GetUserCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.user;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -30,7 +29,6 @@ import com.cloud.user.UserAccount;
 @APICommand(name = "getUser", description = "Find user account by API key", responseObject = UserResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class GetUserCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(GetUserCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/GetUserKeysCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/GetUserKeysCmd.java
index 253a55652ea..3a3414d95d8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/GetUserKeysCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/GetUserKeysCmd.java
@@ -29,7 +29,6 @@ import org.apache.cloudstack.api.response.RegisterResponse;
 import org.apache.cloudstack.api.response.UserResponse;
 
 import java.util.Map;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "getUserKeys",
             description = "This command allows the user to query the seceret and API keys for the account",
@@ -44,7 +43,6 @@ public class GetUserKeysCmd extends BaseCmd{
     @Parameter(name= ApiConstants.ID, type = CommandType.UUID, entityType = UserResponse.class, required = true, description = "ID of the user whose keys are required")
     private Long id;
 
-    public static final Logger s_logger = Logger.getLogger(GetUserKeysCmd.class.getName());
 
     public Long getID(){
         return id;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/ListUsersCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/ListUsersCmd.java
index a516a30e769..ef9e3fa2240 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/ListUsersCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/ListUsersCmd.java
@@ -20,7 +20,6 @@ import com.cloud.server.ResourceIcon;
 import com.cloud.server.ResourceTag;
 import com.cloud.user.Account;
 import org.apache.cloudstack.api.response.ResourceIconResponse;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import java.util.List;
 @APICommand(name = "listUsers", description = "Lists user accounts", responseObject = UserResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class ListUsersCmd extends BaseListAccountResourcesCmd {
-    public static final Logger s_logger = Logger.getLogger(ListUsersCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/LockUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/LockUserCmd.java
index df6ef4f7b0b..5c8bff0732a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/LockUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/LockUserCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.user;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -33,7 +32,6 @@ import com.cloud.user.UserAccount;
 @APICommand(name = "lockUser", description = "Locks a user account", responseObject = UserResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class LockUserCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(LockUserCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/MoveUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/MoveUserCmd.java
index b7090977d96..e57258a4571 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/MoveUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/MoveUserCmd.java
@@ -32,7 +32,6 @@ import org.apache.cloudstack.api.response.UserResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.region.RegionService;
 import org.apache.commons.lang3.ObjectUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.user.Account;
 import com.cloud.user.User;
@@ -46,7 +45,6 @@ import com.google.common.base.Preconditions;
         since = "4.11",
         authorized = {RoleType.Admin})
 public class MoveUserCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(MoveUserCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
index 4199015b9ca..b3e7d2bec82 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.user;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.user.User;
             description = "This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user",
             requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class RegisterCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(RegisterCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
index cb9f6e189f0..3f8d386d266 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.UserResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.region.RegionService;
-import org.apache.log4j.Logger;
 
 import com.cloud.user.Account;
 import com.cloud.user.User;
@@ -37,7 +36,6 @@ import com.cloud.user.UserAccount;
 @APICommand(name = "updateUser", description = "Updates a user account", responseObject = UserResponse.class,
 requestHasSensitiveInfo = true, responseHasSensitiveInfo = true)
 public class UpdateUserCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateUserCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/CreateVlanIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/CreateVlanIpRangeCmd.java
index 66aefd46966..cceadea8532 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/CreateVlanIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/CreateVlanIpRangeCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.vlan;
 
 import com.cloud.utils.net.NetUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createVlanIpRange", description = "Creates a VLAN IP range.", responseObject = VlanIpRangeResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateVlanIpRangeCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateVlanIpRangeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -226,10 +224,10 @@ public class CreateVlanIpRangeCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create vlan ip range");
             }
         } catch (ConcurrentOperationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         } catch (InsufficientCapacityException ex) {
-            s_logger.info(ex);
+            logger.info(ex);
             throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/DedicatePublicIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/DedicatePublicIpRangeCmd.java
index 7c122dfc22e..cac029f3aa1 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/DedicatePublicIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/DedicatePublicIpRangeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.vlan;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -36,7 +35,6 @@ import com.cloud.user.Account;
 @APICommand(name = "dedicatePublicIpRange", description = "Dedicates a Public IP range to an account", responseObject = VlanIpRangeResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DedicatePublicIpRangeCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DedicatePublicIpRangeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/DeleteVlanIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/DeleteVlanIpRangeCmd.java
index 15f0bde37a1..7f583fe225a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/DeleteVlanIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/DeleteVlanIpRangeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.vlan;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteVlanIpRange", description = "Creates a VLAN IP range.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteVlanIpRangeCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteVlanIpRangeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/ListVlanIpRangesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/ListVlanIpRangesCmd.java
index 3b5370e3f15..c11b505c684 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/ListVlanIpRangesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/ListVlanIpRangesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.vlan;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -40,7 +39,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listVlanIpRanges", description = "Lists all VLAN IP ranges.", responseObject = VlanIpRangeResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListVlanIpRangesCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListVlanIpRangesCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/ReleasePublicIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/ReleasePublicIpRangeCmd.java
index 846433a60fc..be4cea41cd8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/ReleasePublicIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/ReleasePublicIpRangeCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.vlan;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -32,7 +31,6 @@ import com.cloud.user.Account;
 @APICommand(name = "releasePublicIpRange", description = "Releases a Public IP range back to the system pool", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ReleasePublicIpRangeCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(ReleasePublicIpRangeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/UpdateVlanIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/UpdateVlanIpRangeCmd.java
index caaf4c5ae01..df6d99f8e2a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/UpdateVlanIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vlan/UpdateVlanIpRangeCmd.java
@@ -24,7 +24,6 @@ import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.VlanIpRangeResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.dc.Vlan;
 import com.cloud.exception.ConcurrentOperationException;
@@ -39,7 +38,6 @@ import com.cloud.utils.net.NetUtils;
         authorized = {RoleType.Admin})
 public class UpdateVlanIpRangeCmd extends BaseCmd {
 
-    public static final Logger s_logger = Logger.getLogger(UpdateVlanIpRangeCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -149,7 +147,7 @@ public class UpdateVlanIpRangeCmd extends BaseCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to Update vlan ip range");
             }
         } catch (ConcurrentOperationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
index 1d53bbb39ad..ac63a5efac3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.vm;
 import java.util.List;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -46,7 +45,6 @@ import com.cloud.vm.VirtualMachine;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = true)
 public class AssignVMCmd extends BaseCmd  {
-    public static final Logger s_logger = Logger.getLogger(AssignVMCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -133,7 +131,7 @@ public class AssignVMCmd extends BaseCmd  {
             e.printStackTrace();
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         } catch (Exception e) {
-            s_logger.error("Failed to move vm due to: " + e.getStackTrace());
+            logger.error("Failed to move vm due to: " + e.getStackTrace());
             if (e.getMessage() != null) {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to move vm due to " + e.getMessage());
             } else if (e.getCause() != null) {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/DeployVMCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/DeployVMCmdByAdmin.java
index acdc0e07427..6bb7657b86b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/DeployVMCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/DeployVMCmdByAdmin.java
@@ -20,7 +20,6 @@ import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.ClusterResponse;
 import org.apache.cloudstack.api.response.PodResponse;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ResponseObject.ResponseView;
@@ -34,7 +33,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "deployVirtualMachine", description = "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class DeployVMCmdByAdmin extends DeployVMCmd implements AdminCmd {
-    public static final Logger s_logger = Logger.getLogger(DeployVMCmdByAdmin.class.getName());
 
 
     @Parameter(name = ApiConstants.POD_ID, type = CommandType.UUID, entityType = PodResponse.class, description = "destination Pod ID to deploy the VM to - parameter available for root admin only", since = "4.13")
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java
index 4cd7f541c4e..a964e873bad 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.vm;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -43,7 +42,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "expungeVirtualMachine", description = "Expunge a virtual machine. Once expunged, it cannot be recoverd.", responseObject = SuccessResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ExpungeVMCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(ExpungeVMCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/GetVMUserDataCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/GetVMUserDataCmd.java
index 98af820201c..8745ef12ce4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/GetVMUserDataCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/GetVMUserDataCmd.java
@@ -24,7 +24,6 @@ import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.UserVmResponse;
 import org.apache.cloudstack.api.response.VMUserDataResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.user.Account;
 import com.cloud.uservm.UserVm;
@@ -32,7 +31,6 @@ import com.cloud.uservm.UserVm;
 @APICommand(name = "getVirtualMachineUserData", description = "Returns user data associated with the VM", responseObject = VMUserDataResponse.class, since = "4.4",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class GetVMUserDataCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(GetVMUserDataCmd.class);
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportUnmanagedInstanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportUnmanagedInstanceCmd.java
index d632c786a16..dd897218a4d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportUnmanagedInstanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportUnmanagedInstanceCmd.java
@@ -41,7 +41,6 @@ import org.apache.cloudstack.vm.VmImportService;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.ConcurrentOperationException;
@@ -65,7 +64,6 @@ import com.cloud.vm.VmDetailConstants;
         authorized = {RoleType.Admin},
         since = "4.14.0")
 public class ImportUnmanagedInstanceCmd extends BaseAsyncCmd {
-    public static final Logger LOGGER = Logger.getLogger(ImportUnmanagedInstanceCmd.class);
 
     @Inject
     public VmImportService vmImportService;
@@ -203,8 +201,8 @@ public class ImportUnmanagedInstanceCmd extends BaseAsyncCmd {
             for (Map<String, String> entry : (Collection<Map<String, String>>)nicNetworkList.values()) {
                 String nic = entry.get(VmDetailConstants.NIC);
                 String networkUuid = entry.get(VmDetailConstants.NETWORK);
-                if (LOGGER.isTraceEnabled()) {
-                    LOGGER.trace(String.format("nic, '%s', goes on net, '%s'", nic, networkUuid));
+                if (logger.isTraceEnabled()) {
+                    logger.trace(String.format("nic, '%s', goes on net, '%s'", nic, networkUuid));
                 }
                 if (StringUtils.isAnyEmpty(nic, networkUuid) || _entityMgr.findByUuid(Network.class, networkUuid) == null) {
                     throw new InvalidParameterValueException(String.format("Network ID: %s for NIC ID: %s is invalid", networkUuid, nic));
@@ -221,8 +219,8 @@ public class ImportUnmanagedInstanceCmd extends BaseAsyncCmd {
             for (Map<String, String> entry : (Collection<Map<String, String>>)nicIpAddressList.values()) {
                 String nic = entry.get(VmDetailConstants.NIC);
                 String ipAddress = StringUtils.defaultIfEmpty(entry.get(VmDetailConstants.IP4_ADDRESS), null);
-                if (LOGGER.isTraceEnabled()) {
-                    LOGGER.trace(String.format("nic, '%s', gets ip, '%s'", nic, ipAddress));
+                if (logger.isTraceEnabled()) {
+                    logger.trace(String.format("nic, '%s', gets ip, '%s'", nic, ipAddress));
                 }
                 if (StringUtils.isEmpty(nic)) {
                     throw new InvalidParameterValueException(String.format("NIC ID: '%s' is invalid for IP address mapping", nic));
@@ -246,8 +244,8 @@ public class ImportUnmanagedInstanceCmd extends BaseAsyncCmd {
             for (Map<String, String> entry : (Collection<Map<String, String>>)dataDiskToDiskOfferingList.values()) {
                 String disk = entry.get(VmDetailConstants.DISK);
                 String offeringUuid = entry.get(VmDetailConstants.DISK_OFFERING);
-                if (LOGGER.isTraceEnabled()) {
-                    LOGGER.trace(String.format("disk, '%s', gets offering, '%s'", disk, offeringUuid));
+                if (logger.isTraceEnabled()) {
+                    logger.trace(String.format("disk, '%s', gets offering, '%s'", disk, offeringUuid));
                 }
                 if (StringUtils.isAnyEmpty(disk, offeringUuid) || _entityMgr.findByUuid(DiskOffering.class, offeringUuid) == null) {
                     throw new InvalidParameterValueException(String.format("Disk offering ID: %s for disk ID: %s is invalid", offeringUuid, disk));
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportVmCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportVmCmd.java
index e8b9f3addde..1a34b7ea6cc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportVmCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportVmCmd.java
@@ -39,7 +39,6 @@ import org.apache.cloudstack.api.response.ZoneResponse;
 import org.apache.cloudstack.vm.VmImportService;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import javax.inject.Inject;
 
@@ -52,7 +51,6 @@ import javax.inject.Inject;
         authorized = {RoleType.Admin},
         since = "4.19.0")
 public class ImportVmCmd extends ImportUnmanagedInstanceCmd {
-    public static final Logger LOGGER = Logger.getLogger(ImportVmCmd.class);
 
     @Inject
     public VmImportService vmImportService;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListUnmanagedInstancesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListUnmanagedInstancesCmd.java
index 13b6748c74d..6932aa383fa 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListUnmanagedInstancesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListUnmanagedInstancesCmd.java
@@ -32,7 +32,6 @@ import org.apache.cloudstack.api.response.UnmanagedInstanceResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.vm.UnmanagedInstanceTO;
 import org.apache.cloudstack.vm.VmImportService;
-import org.apache.log4j.Logger;
 
 import com.cloud.exception.ConcurrentOperationException;
 import com.cloud.exception.InsufficientCapacityException;
@@ -51,7 +50,6 @@ import com.cloud.user.Account;
         authorized = {RoleType.Admin},
         since = "4.14.0")
 public class ListUnmanagedInstancesCmd extends BaseListCmd {
-    public static final Logger LOGGER = Logger.getLogger(ListUnmanagedInstancesCmd.class.getName());
 
     @Inject
     public VmImportService vmImportService;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListVMsCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListVMsCmdByAdmin.java
index 5b3e607416b..b48941e7d17 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListVMsCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListVMsCmdByAdmin.java
@@ -27,14 +27,12 @@ import org.apache.cloudstack.api.response.HostResponse;
 import org.apache.cloudstack.api.response.PodResponse;
 import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.UserVmResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.vm.VirtualMachine;
 
 @APICommand(name = "listVirtualMachines", description = "List the virtual machines owned by the account.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class ListVMsCmdByAdmin extends ListVMsCmd implements AdminCmd {
-    public static final Logger s_logger = Logger.getLogger(ListVMsCmdByAdmin.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListVmsForImportCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListVmsForImportCmd.java
index 88df04d9ef5..f40f1c0cb4a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListVmsForImportCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListVmsForImportCmd.java
@@ -36,7 +36,6 @@ import org.apache.cloudstack.api.response.ZoneResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.vm.UnmanagedInstanceTO;
 import org.apache.cloudstack.vm.VmImportService;
-import org.apache.log4j.Logger;
 
 import javax.inject.Inject;
 
@@ -50,7 +49,6 @@ import javax.inject.Inject;
         authorized = {RoleType.Admin},
         since = "4.19.0")
 public class ListVmsForImportCmd extends BaseListCmd {
-    public static final Logger LOGGER = Logger.getLogger(ListVmsForImportCmd.class.getName());
 
     @Inject
     public VmImportService vmImportService;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
index b685b366cd1..8881a2bc354 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.vm;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -50,7 +49,6 @@ import com.cloud.vm.VirtualMachine;
         requestHasSensitiveInfo = false,
         responseHasSensitiveInfo = true)
 public class MigrateVMCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(MigrateVMCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -184,10 +182,10 @@ public class MigrateVMCmd extends BaseAsyncCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to migrate vm");
             }
         } catch (ResourceUnavailableException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
         } catch (VirtualMachineMigrationException | ConcurrentOperationException | ManagementServerException e) {
-            s_logger.warn("Exception: ", e);
+            logger.warn("Exception: ", e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
index 549d02b4579..b736e860636 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
@@ -33,7 +33,6 @@ import org.apache.cloudstack.api.response.HostResponse;
 import org.apache.cloudstack.api.response.SystemVmResponse;
 import org.apache.cloudstack.api.response.UserVmResponse;
 import org.apache.commons.collections.MapUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.ConcurrentOperationException;
@@ -52,7 +51,6 @@ import com.cloud.vm.VirtualMachine;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = true)
 public class MigrateVirtualMachineWithVolumeCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(MigrateVirtualMachineWithVolumeCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
@@ -157,7 +155,7 @@ public class MigrateVirtualMachineWithVolumeCmd extends BaseAsyncCmd {
         Host destinationHost = _resourceService.getHost(getHostId());
         // OfflineVmwareMigration: destination host would have to not be a required parameter for stopped VMs
         if (destinationHost == null) {
-            s_logger.error(String.format("Unable to find the host with ID [%s].", getHostId()));
+            logger.error(String.format("Unable to find the host with ID [%s].", getHostId()));
             throw new InvalidParameterValueException("Unable to find the specified host to migrate the VM.");
         }
         return destinationHost;
@@ -193,10 +191,10 @@ public class MigrateVirtualMachineWithVolumeCmd extends BaseAsyncCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to migrate vm");
             }
         } catch (ResourceUnavailableException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
         } catch (ConcurrentOperationException | ManagementServerException | VirtualMachineMigrationException e) {
-            s_logger.warn("Exception: ", e);
+            logger.warn("Exception: ", e);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/RecoverVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/RecoverVMCmd.java
index b0698ed1e7a..f34d555dc70 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/RecoverVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/RecoverVMCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.vm;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -38,7 +37,6 @@ import com.cloud.vm.VirtualMachine;
 @APICommand(name = "recoverVirtualMachine", description = "Recovers a virtual machine.", responseObject = UserVmResponse.class, entityType = {VirtualMachine.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class RecoverVMCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(RecoverVMCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/UnmanageVMInstanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/UnmanageVMInstanceCmd.java
index 20c7c536c45..bbcb8840f66 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/UnmanageVMInstanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/UnmanageVMInstanceCmd.java
@@ -40,7 +40,6 @@ import org.apache.cloudstack.api.response.UnmanageVMInstanceResponse;
 import org.apache.cloudstack.api.response.UserVmResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.vm.UnmanagedVMsManager;
-import org.apache.log4j.Logger;
 
 import javax.inject.Inject;
 
@@ -53,7 +52,6 @@ import javax.inject.Inject;
         since = "4.15.0")
 public class UnmanageVMInstanceCmd extends BaseAsyncCmd {
 
-    public static final Logger LOGGER = Logger.getLogger(UnmanageVMInstanceCmd.class);
 
     @Inject
     private UnmanagedVMsManager unmanagedVMsManager;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/volume/DestroyVolumeCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/volume/DestroyVolumeCmdByAdmin.java
index 44ce32f90c2..0840b4ce6f9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/volume/DestroyVolumeCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/volume/DestroyVolumeCmdByAdmin.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.volume;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -37,7 +36,6 @@ import com.cloud.storage.Volume;
             responseHasSensitiveInfo = true)
 public class DestroyVolumeCmdByAdmin extends DestroyVolumeCmd implements AdminCmd {
 
-    public static final Logger s_logger = Logger.getLogger(DestroyVolumeCmdByAdmin.class.getName());
 
     @Override
     public void execute() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/volume/RecoverVolumeCmdByAdmin.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/volume/RecoverVolumeCmdByAdmin.java
index f51aeec9719..e276c8a00b6 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/volume/RecoverVolumeCmdByAdmin.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/volume/RecoverVolumeCmdByAdmin.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.volume;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -36,7 +35,6 @@ import com.cloud.storage.Volume;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = true)
 public class RecoverVolumeCmdByAdmin extends RecoverVolumeCmd implements AdminCmd {
-    public static final Logger s_logger = Logger.getLogger(RecoverVolumeCmdByAdmin.class.getName());
 
     @Override
     public void execute() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreatePrivateGatewayByAdminCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreatePrivateGatewayByAdminCmd.java
index b5ba70cf5e2..1b2163853ec 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreatePrivateGatewayByAdminCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreatePrivateGatewayByAdminCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.vpc;
 
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.network.vpc.VpcGateway;
         since = "4.17.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreatePrivateGatewayByAdminCmd extends CreatePrivateGatewayCmd implements AdminCmd {
-    public static final Logger s_logger = Logger.getLogger(CreatePrivateGatewayByAdminCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
index b69e7f4a828..382c081e01e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
@@ -29,7 +29,6 @@ import org.apache.cloudstack.api.response.DomainResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -48,7 +47,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createVPCOffering", description = "Creates VPC offering", responseObject = VpcOfferingResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateVPCOfferingCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateVPCOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
@@ -131,8 +129,8 @@ public class CreateVPCOfferingCmd extends BaseAsyncCreateCmd {
             Iterator<? extends Map<String, String>> iter = servicesCollection.iterator();
             while (iter.hasNext()) {
                 Map<String, String> obj = iter.next();
-                if (s_logger.isTraceEnabled()) {
-                    s_logger.trace("service provider entry specified: " + obj);
+                if (logger.isTraceEnabled()) {
+                    logger.trace("service provider entry specified: " + obj);
                 }
                 HashMap<String, String> services = (HashMap<String, String>)obj;
                 String service = services.get("service");
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
index d6c3cac68c7..d104edc381b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.vpc;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -41,7 +40,6 @@ import com.cloud.user.Account;
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
 public class DeletePrivateGatewayCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeletePrivateGatewayCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeleteVPCOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeleteVPCOfferingCmd.java
index aba4c857b0b..6aa0c3f3afc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeleteVPCOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeleteVPCOfferingCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.admin.vpc;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -34,7 +33,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteVPCOffering", description = "Deletes VPC offering", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteVPCOfferingCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteVPCOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/ListPrivateGatewaysCmdByAdminCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/ListPrivateGatewaysCmdByAdminCmd.java
index 13a63e9cdd8..1211bd3311c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/ListPrivateGatewaysCmdByAdminCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/ListPrivateGatewaysCmdByAdminCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.vpc;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ResponseObject;
@@ -30,6 +29,5 @@ import com.cloud.network.vpc.VpcGateway;
         responseView = ResponseObject.ResponseView.Full,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListPrivateGatewaysCmdByAdminCmd extends ListPrivateGatewaysCmd implements AdminCmd {
-    public static final Logger s_logger = Logger.getLogger(ListPrivateGatewaysCmdByAdminCmd.class.getName());
 
 }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/UpdateVPCOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/UpdateVPCOfferingCmd.java
index 12babad504e..b59837281ef 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/UpdateVPCOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/UpdateVPCOfferingCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.VpcOfferingResponse;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import com.cloud.dc.DataCenter;
 import com.cloud.domain.Domain;
@@ -40,7 +39,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateVPCOffering", description = "Updates VPC offering", responseObject = VpcOfferingResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateVPCOfferingCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateVPCOfferingCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java
index aca3e00d095..24660e41ed9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.zone;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createZone", description = "Creates a Zone.", responseObject = ZoneResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateZoneCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateZoneCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java
index c530e999bf8..b89636c6fe5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/DeleteZoneCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.zone;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -33,7 +32,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteZone", description = "Deletes a Zone.", responseObject = SuccessResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteZoneCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteZoneCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/MarkDefaultZoneForAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/MarkDefaultZoneForAccountCmd.java
index 264aea3f449..5d3f5dcd47f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/MarkDefaultZoneForAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/MarkDefaultZoneForAccountCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.admin.zone;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "markDefaultZoneForAccount", description = "Marks a default zone for this account", responseObject = AccountResponse.class, since = "4.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class MarkDefaultZoneForAccountCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(MarkDefaultZoneForAccountCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java
index 1379050cbf7..1b2793d3e15 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.admin.zone;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateZone", description = "Updates a Zone.", responseObject = ZoneResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateZoneCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateZoneCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
index 57c0e484843..2fbcb6df1cc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
@@ -24,7 +24,6 @@ import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.response.ProjectRoleResponse;
 import org.apache.commons.lang3.EnumUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -44,7 +43,6 @@ import com.cloud.projects.ProjectAccount;
 @APICommand(name = "addAccountToProject", description = "Adds account to a project", responseObject = SuccessResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddAccountToProjectCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(AddAccountToProjectCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
index 34935f506ec..5e0977938a3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.user.account;
 import java.util.List;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -38,7 +37,6 @@ import com.cloud.projects.Project;
 @APICommand(name = "deleteAccountFromProject", description = "Deletes account from the project", responseObject = SuccessResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteAccountFromProjectCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteAccountFromProjectCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteUserFromProjectCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteUserFromProjectCmd.java
index 596fb876008..8319911c5c8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteUserFromProjectCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteUserFromProjectCmd.java
@@ -32,7 +32,6 @@ import org.apache.cloudstack.api.response.ProjectResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.api.response.UserResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 import com.cloud.event.EventTypes;
 import com.cloud.exception.InvalidParameterValueException;
@@ -41,7 +40,6 @@ import com.cloud.projects.Project;
 @APICommand(name = "deleteUserFromProject", description = "Deletes user from the project", responseObject = SuccessResponse.class, since = "4.15.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, authorized = {RoleType.Admin, RoleType.DomainAdmin, RoleType.ResourceAdmin, RoleType.User})
 public class DeleteUserFromProjectCmd extends BaseAsyncCmd {
-    public static final Logger LOGGER = Logger.getLogger(DeleteUserFromProjectCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmd.java
index 66a4d91172a..11c4d863c47 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmd.java
@@ -31,7 +31,6 @@ import org.apache.cloudstack.api.command.user.UserCmd;
 import org.apache.cloudstack.api.response.AccountResponse;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.ResourceIconResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.server.ResourceIcon;
@@ -41,7 +40,6 @@ import com.cloud.user.Account;
 @APICommand(name = "listAccounts", description = "Lists accounts and provides detailed account information for listed accounts", responseObject = AccountResponse.class, responseView = ResponseView.Restricted, entityType = {Account.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 public class ListAccountsCmd extends BaseListDomainResourcesCmd implements UserCmd {
-    public static final Logger s_logger = Logger.getLogger(ListAccountsCmd.class.getName());
     private static final String s_name = "listaccountsresponse";
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListProjectAccountsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListProjectAccountsCmd.java
index 3d50fc553b8..21aedc7d772 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListProjectAccountsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListProjectAccountsCmd.java
@@ -26,14 +26,12 @@ import org.apache.cloudstack.api.response.ProjectAccountResponse;
 import org.apache.cloudstack.api.response.ProjectResponse;
 import org.apache.cloudstack.api.response.ProjectRoleResponse;
 import org.apache.cloudstack.api.response.UserResponse;
-import org.apache.log4j.Logger;
 
 import com.cloud.user.Account;
 
 @APICommand(name = "listProjectAccounts", description = "Lists project's accounts", responseObject = ProjectResponse.class, since = "3.0.0",
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListProjectAccountsCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListProjectAccountsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
index 75b83b40f3e..5ea14478516 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.user.address;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -65,7 +64,6 @@ import com.cloud.user.Account;
         requestHasSensitiveInfo = false,
         responseHasSensitiveInfo = false)
 public class AssociateIPAddrCmd extends BaseAsyncCreateCmd implements UserCmd {
-    public static final Logger s_logger = Logger.getLogger(AssociateIPAddrCmd.class.getName());
     private static final String s_name = "associateipaddressresponse";
 
     /////////////////////////////////////////////////////
@@ -325,11 +323,11 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd implements UserCmd {
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to allocate IP address");
             }
         } catch (ConcurrentOperationException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         } catch (InsufficientAddressCapacityException ex) {
-            s_logger.info(ex);
-            s_logger.trace(ex);
+            logger.info(ex);
+            logger.trace(ex);
             throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
index f9bfcb253b4..f4c06e512f0 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.address;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "disassociateIpAddress", description = "Disassociates an IP address from the account.", responseObject = SuccessResponse.class,
  requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, entityType = { IpAddress.class })
 public class DisassociateIPAddrCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DisassociateIPAddrCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ListPublicIpAddressesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ListPublicIpAddressesCmd.java
index 22eb70cc0c2..5c1c61130ba 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ListPublicIpAddressesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ListPublicIpAddressesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.user.address;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -43,7 +42,6 @@ import com.cloud.utils.Pair;
 @APICommand(name = "listPublicIpAddresses", description = "Lists all public IP addresses", responseObject = IPAddressResponse.class, responseView = ResponseView.Restricted,
  requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, entityType = { IpAddress.class })
 public class ListPublicIpAddressesCmd extends BaseListRetrieveOnlyResourceCountCmd implements UserCmd {
-    public static final Logger s_logger = Logger.getLogger(ListPublicIpAddressesCmd.class.getName());
 
     private static final String s_name = "listpublicipaddressesresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReleaseIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReleaseIPAddrCmd.java
index eb908300283..effe45c51ed 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReleaseIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReleaseIPAddrCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.address;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -41,7 +40,6 @@ import com.cloud.network.IpAddress;
         responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
 public class ReleaseIPAddrCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(ReleaseIPAddrCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReserveIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReserveIPAddrCmd.java
index 5e72986fb58..e323d413b9a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReserveIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReserveIPAddrCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.user.address;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -51,7 +50,6 @@ import com.cloud.user.Account;
         responseHasSensitiveInfo = false,
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
 public class ReserveIPAddrCmd extends BaseCmd implements UserCmd {
-    public static final Logger s_logger = Logger.getLogger(ReserveIPAddrCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
index 7055e1d5cb2..194967e2e4a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api.command.user.address;
 
 import org.apache.cloudstack.api.ApiCommandResourceType;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -42,7 +41,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateIpAddress", description = "Updates an IP address", responseObject = IPAddressResponse.class,
  requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, entityType = { IpAddress.class })
 public class UpdateIPAddrCmd extends BaseAsyncCustomIdCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateIPAddrCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
index 60dbc2a6e9a..ee0a38ef35d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.affinitygroup;
 
-import org.apache.log4j.Logger;
 import org.apache.cloudstack.affinity.AffinityGroup;
 import org.apache.cloudstack.affinity.AffinityGroupResponse;
 import org.apache.cloudstack.api.APICommand;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "createAffinityGroup", responseObject = AffinityGroupResponse.class, description = "Creates an affinity/anti-affinity group", entityType = {AffinityGroup.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateAffinityGroupCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateAffinityGroupCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
index c8967b08020..2f24158cadb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.user.affinitygroup;
 
 
 import org.apache.cloudstack.api.response.ProjectResponse;
-import org.apache.log4j.Logger;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.affinity.AffinityGroup;
 import org.apache.cloudstack.affinity.AffinityGroupResponse;
@@ -40,7 +39,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteAffinityGroup", description = "Deletes affinity group", responseObject = SuccessResponse.class, entityType = {AffinityGroup.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteAffinityGroupCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteAffinityGroupCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupTypesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupTypesCmd.java
index 2d6f45cc06e..c90294171b3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupTypesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupTypesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.user.affinitygroup;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.affinity.AffinityGroupTypeResponse;
 import org.apache.cloudstack.api.APICommand;
@@ -31,7 +30,6 @@ import com.cloud.user.Account;
 @APICommand(name = "listAffinityGroupTypes", description = "Lists affinity group types available", responseObject = AffinityGroupTypeResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListAffinityGroupTypesCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListAffinityGroupTypesCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java
index ed6c3145198..ee23e3794ce 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.affinitygroup;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.affinity.AffinityGroup;
 import org.apache.cloudstack.affinity.AffinityGroupResponse;
@@ -31,7 +30,6 @@ import org.apache.cloudstack.api.response.UserVmResponse;
 @APICommand(name = "listAffinityGroups", description = "Lists affinity groups", responseObject = AffinityGroupResponse.class, entityType = {AffinityGroup.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListAffinityGroupsCmd extends BaseListProjectAndAccountResourcesCmd {
-    public static final Logger s_logger = Logger.getLogger(ListAffinityGroupsCmd.class.getName());
 
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
index c70e4fbda66..6cd9bce6259 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
@@ -20,7 +20,6 @@ import java.util.ArrayList;
 import java.util.EnumSet;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.affinity.AffinityGroupResponse;
@@ -55,7 +54,6 @@ import com.cloud.vm.VirtualMachine;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = true)
 public class UpdateVMAffinityGroupCmd extends BaseAsyncCmd implements UserCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateVMAffinityGroupCmd.class.getName());
     private static final String s_name = "updatevirtualmachineresponse";
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScalePolicyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScalePolicyCmd.java
index eff93522b62..a000e265f93 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScalePolicyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScalePolicyCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -43,7 +42,6 @@ import com.cloud.user.Account;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class CreateAutoScalePolicyCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateAutoScalePolicyCmd.class.getName());
 
     private static final String s_name = "autoscalepolicyresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmGroupCmd.java
index cdbe153f017..7c9362d4b69 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmGroupCmd.java
@@ -18,7 +18,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -45,7 +44,6 @@ import com.cloud.network.rules.LoadBalancer;
             requestHasSensitiveInfo = false,
             responseHasSensitiveInfo = false)
 public class CreateAutoScaleVmGroupCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateAutoScaleVmGroupCmd.class.getName());
 
     private static final String s_name = "autoscalevmgroupresponse";
 
@@ -233,7 +231,7 @@ public class CreateAutoScaleVmGroupCmd extends BaseAsyncCreateCmd {
             }
         } catch (Exception ex) {
             // TODO what will happen if Resource Layer fails in a step in between
-            s_logger.warn("Failed to create autoscale vm group", ex);
+            logger.warn("Failed to create autoscale vm group", ex);
         } finally {
             if (!success || vmGroup == null) {
                 _autoScaleService.deleteAutoScaleVmGroup(getEntityId(), true);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
index db6ccd9ce53..f5b8c3da855 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
@@ -20,7 +20,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.collections.MapUtils;
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -51,7 +50,6 @@ import com.cloud.network.as.AutoScaleVmProfile;
             responseHasSensitiveInfo = false)
 @SuppressWarnings("rawtypes")
 public class CreateAutoScaleVmProfileCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateAutoScaleVmProfileCmd.class.getName());
 
     private static final String s_name = "autoscalevmprofileresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
index 77bc15b1e0f..0ffb9afdac4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.user.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -39,7 +38,6 @@ import com.cloud.network.as.Condition;
 @APICommand(name = "createCondition", description = "Creates a condition for VM auto scaling", responseObject = ConditionResponse.class, entityType = {Condition.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class CreateConditionCmd extends BaseAsyncCreateCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateConditionCmd.class.getName());
     private static final String s_name = "conditionresponse";
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
index cf5ff366096..cee9460dbe6 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -38,7 +37,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteAutoScalePolicy", description = "Deletes a autoscale policy.", responseObject = SuccessResponse.class, entityType = {AutoScalePolicy.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteAutoScalePolicyCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteAutoScalePolicyCmd.class.getName());
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
     // ///////////////////////////////////////////////////
@@ -93,7 +91,7 @@ public class DeleteAutoScalePolicyCmd extends BaseAsyncCmd {
             SuccessResponse response = new SuccessResponse(getCommandName());
             setResponseObject(response);
         } else {
-            s_logger.warn("Failed to delete autoscale policy " + getId());
+            logger.warn("Failed to delete autoscale policy " + getId());
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete AutoScale Policy");
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
index badfcc0957e..6bf2157533e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -38,7 +37,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteAutoScaleVmGroup", description = "Deletes a autoscale vm group.", responseObject = SuccessResponse.class, entityType = {AutoScaleVmGroup.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteAutoScaleVmGroupCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteAutoScaleVmGroupCmd.class.getName());
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
     // ///////////////////////////////////////////////////
@@ -103,7 +101,7 @@ public class DeleteAutoScaleVmGroupCmd extends BaseAsyncCmd {
             SuccessResponse response = new SuccessResponse(getCommandName());
             setResponseObject(response);
         } else {
-            s_logger.warn("Failed to delete autoscale vm group " + getId());
+            logger.warn("Failed to delete autoscale vm group " + getId());
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete autoscale vm group");
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
index 06bf7a9d378..b90f6aa8ffa 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
@@ -16,7 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -38,7 +37,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteAutoScaleVmProfile", description = "Deletes a autoscale vm profile.", responseObject = SuccessResponse.class, entityType = {AutoScaleVmProfile.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteAutoScaleVmProfileCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteAutoScaleVmProfileCmd.class.getName());
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
     // ///////////////////////////////////////////////////
@@ -92,7 +90,7 @@ public class DeleteAutoScaleVmProfileCmd extends BaseAsyncCmd {
             SuccessResponse response = new SuccessResponse(getCommandName());
             setResponseObject(response);
         } else {
-            s_logger.warn("Failed to delete autoscale vm profile " + getId());
+            logger.warn("Failed to delete autoscale vm profile " + getId());
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete autoscale vm profile");
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteConditionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteConditionCmd.java
index 840484e45ad..9590012e037 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteConditionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteConditionCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.user.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -39,7 +38,6 @@ import com.cloud.user.Account;
 @APICommand(name = "deleteCondition", description = "Removes a condition for VM auto scaling", responseObject = SuccessResponse.class, entityType = {Condition.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DeleteConditionCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteConditionCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
@@ -59,14 +57,14 @@ public class DeleteConditionCmd extends BaseAsyncCmd {
         try {
             result = _autoScaleService.deleteCondition(getId());
         } catch (ResourceInUseException ex) {
-            s_logger.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_IN_USE_ERROR, ex.getMessage());
         }
         if (result) {
             SuccessResponse response = new SuccessResponse(getCommandName());
             setResponseObject(response);
         } else {
-            s_logger.warn("Failed to delete condition " + getId());
+            logger.warn("Failed to delete condition " + getId());
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete condition.");
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DisableAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DisableAutoScaleVmGroupCmd.java
index b0daf2ec664..2414c0d82b6 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DisableAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DisableAutoScaleVmGroupCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.user.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "disableAutoScaleVmGroup", description = "Disables an AutoScale Vm Group", responseObject = AutoScaleVmGroupResponse.class, entityType = {AutoScaleVmGroup.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class DisableAutoScaleVmGroupCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(DisableAutoScaleVmGroupCmd.class.getName());
     private static final String s_name = "disableautoscalevmGroupresponse";
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/EnableAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/EnableAutoScaleVmGroupCmd.java
index b6f2a82ac49..96d329d3e0c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/EnableAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/EnableAutoScaleVmGroupCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.user.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -37,7 +36,6 @@ import com.cloud.user.Account;
 @APICommand(name = "enableAutoScaleVmGroup", description = "Enables an AutoScale Vm Group", responseObject = AutoScaleVmGroupResponse.class, entityType = {AutoScaleVmGroup.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class EnableAutoScaleVmGroupCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(EnableAutoScaleVmGroupCmd.class.getName());
     private static final String s_name = "enableautoscalevmGroupresponse";
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScalePoliciesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScalePoliciesCmd.java
index dc0baf4c786..4935889c525 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScalePoliciesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScalePoliciesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.network.as.AutoScalePolicy;
 @APICommand(name = "listAutoScalePolicies", description = "Lists autoscale policies.", responseObject = AutoScalePolicyResponse.class, entityType = {AutoScalePolicy.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListAutoScalePoliciesCmd extends BaseListProjectAndAccountResourcesCmd {
-    public static final Logger s_logger = Logger.getLogger(ListAutoScalePoliciesCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmGroupsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmGroupsCmd.java
index 8404fbbb49f..6aa4abcccd8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmGroupsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmGroupsCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -39,7 +38,6 @@ import com.cloud.network.as.AutoScaleVmGroup;
 @APICommand(name = "listAutoScaleVmGroups", description = "Lists autoscale vm groups.", responseObject = AutoScaleVmGroupResponse.class, entityType = {AutoScaleVmGroup.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListAutoScaleVmGroupsCmd extends BaseListProjectAndAccountResourcesCmd {
-    public static final Logger s_logger = Logger.getLogger(ListAutoScaleVmGroupsCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmProfilesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmProfilesCmd.java
index 435471faf13..bcaea273ce8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmProfilesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmProfilesCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
@@ -37,7 +36,6 @@ import com.cloud.network.as.AutoScaleVmProfile;
 @APICommand(name = "listAutoScaleVmProfiles", description = "Lists autoscale vm profiles.", responseObject = AutoScaleVmProfileResponse.class, entityType = {AutoScaleVmProfile.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListAutoScaleVmProfilesCmd extends BaseListProjectAndAccountResourcesCmd {
-    public static final Logger s_logger = Logger.getLogger(ListAutoScaleVmProfilesCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListConditionsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListConditionsCmd.java
index fc1ca7097c8..febf937d75f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListConditionsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListConditionsCmd.java
@@ -20,7 +20,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -36,7 +35,6 @@ import com.cloud.network.as.Condition;
 @APICommand(name = "listConditions", description = "List Conditions for VM auto scaling", responseObject = ConditionResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListConditionsCmd extends BaseListProjectAndAccountResourcesCmd {
-    public static final Logger s_logger = Logger.getLogger(ListConditionsCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListCountersCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListCountersCmd.java
index 7da8bd40b61..d03584fd63d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListCountersCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/ListCountersCmd.java
@@ -20,7 +20,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -35,7 +34,6 @@ import com.cloud.user.Account;
 @APICommand(name = "listCounters", description = "List the counters for VM auto scaling", responseObject = CounterResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListCountersCmd extends BaseListCmd {
-    public static final Logger s_logger = Logger.getLogger(ListCountersCmd.class.getName());
     private static final String s_name = "counterresponse";
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
index a64b5cb1680..927a9191fcc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.ACL;
@@ -41,7 +40,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateAutoScalePolicy", description = "Updates an existing autoscale policy.", responseObject = AutoScalePolicyResponse.class, entityType = {AutoScalePolicy.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateAutoScalePolicyCmd extends BaseAsyncCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateAutoScalePolicyCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
index 87cd1fd3f4e..69ae8aa36aa 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
@@ -19,7 +19,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -42,7 +41,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateAutoScaleVmGroup", description = "Updates an existing autoscale vm group.", responseObject = AutoScaleVmGroupResponse.class, entityType = {AutoScaleVmGroup.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateAutoScaleVmGroupCmd extends BaseAsyncCustomIdCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateAutoScaleVmGroupCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
index 3e65d38e520..e8ca502b5cd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
@@ -20,7 +20,6 @@ package org.apache.cloudstack.api.command.user.autoscale;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -46,7 +45,6 @@ import com.cloud.user.Account;
 @APICommand(name = "updateAutoScaleVmProfile", description = "Updates an existing autoscale vm profile.", responseObject = AutoScaleVmProfileResponse.class, entityType = {AutoScaleVmProfile.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateAutoScaleVmProfileCmd extends BaseAsyncCustomIdCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateAutoScaleVmProfileCmd.class.getName());
 
 
     // ///////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateConditionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateConditionCmd.java
index e946dd370c1..4ed8244ff0c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateConditionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateConditionCmd.java
@@ -17,7 +17,6 @@
 
 package org.apache.cloudstack.api.command.user.autoscale;
 
-import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -41,7 +40,6 @@ import com.cloud.user.Account;
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.18.0")
 public class UpdateConditionCmd extends BaseAsyncCmd {
-    public static final Logger LOGGER = Logger.getLogger(UpdateConditionCmd.class.getName());
 
     // ///////////////////////////////////////////////////
     // ////////////// API parameters /////////////////////
@@ -69,7 +67,7 @@ public class UpdateConditionCmd extends BaseAsyncCmd {
             response.setResponseName(getCommandName());
             setResponseObject(response);
         } catch (ResourceInUseException ex) {
-            LOGGER.warn("Exception: ", ex);
+            logger.warn("Exception: ", ex);
             throw new ServerApiException(ApiErrorCode.RESOURCE_IN_USE_ERROR, ex.getMessage());
         }
     }
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/CreateBucketCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/CreateBucketCmd.java
index e9a140cf46e..d2c91e57871 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/CreateBucketCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/CreateBucketCmd.java
@@ -34,14 +34,12 @@ import org.apache.cloudstack.api.response.DomainResponse;
 import org.apache.cloudstack.api.response.ObjectStoreResponse;
 import org.apache.cloudstack.api.response.ProjectResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "createBucket", responseObject = BucketResponse.class,
         description = "Creates a bucket in the specified object storage pool. ", responseView = ResponseView.Restricted,
         entityType = {Bucket.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.19.0",
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
 public class CreateBucketCmd extends BaseAsyncCreateCmd implements UserCmd {
-    public static final Logger s_logger = Logger.getLogger(CreateBucketCmd.class.getName());
     private static final String s_name = "createbucketresponse";
 
     /////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/DeleteBucketCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/DeleteBucketCmd.java
index bf9552b779e..8cd2790e4ae 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/DeleteBucketCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/DeleteBucketCmd.java
@@ -30,13 +30,11 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.BucketResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "deleteBucket", description = "Deletes an empty Bucket.", responseObject = SuccessResponse.class, entityType = {Bucket.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.19.0",
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
 public class DeleteBucketCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(DeleteBucketCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/ListBucketsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/ListBucketsCmd.java
index 897b9fc6696..bda0c7ed381 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/ListBucketsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/ListBucketsCmd.java
@@ -28,7 +28,6 @@ import org.apache.cloudstack.api.command.user.UserCmd;
 import org.apache.cloudstack.api.response.BucketResponse;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.StoragePoolResponse;
-import org.apache.log4j.Logger;
 
 import java.util.List;
 
@@ -36,7 +35,6 @@ import java.util.List;
         Bucket.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.19.0",
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
 public class ListBucketsCmd extends BaseListTaggedResourcesCmd implements UserCmd {
-    public static final Logger s_logger = Logger.getLogger(ListBucketsCmd.class.getName());
 
     private static final String s_name = "listbucketsresponse";
 
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/UpdateBucketCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/UpdateBucketCmd.java
index b3b7e00770d..8e281b20e91 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/UpdateBucketCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/bucket/UpdateBucketCmd.java
@@ -32,13 +32,11 @@ import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.BucketResponse;
 import org.apache.cloudstack.api.response.SuccessResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
 
 @APICommand(name = "updateBucket", description = "Updates Bucket properties", responseObject = SuccessResponse.class, entityType = {Bucket.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.19.0",
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
 public class UpdateBucketCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(UpdateBucketCmd.class.getName());
 
     /////////////////////////////////////////////////////
     //////////////// API parameters /////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java
index 65920a97c98..cf25dfaf5b5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java
@@ -23,14 +23,12 @@ import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.response.CapabilitiesResponse;
 import org.apache.cloudstack.config.ApiServiceConfiguration;
-import org.apache.log4j.Logger;
 
 import com.cloud.user.Account;
 
 @APICommand(name = "listCapabilities", description = "Lists capabilities", responseObject = CapabilitiesResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListCapabilitiesCmd extends BaseCmd {
-    public static final Logger s_logger = Logger.getLogger(ListCapabilitiesCmd.class.getName());
 
 
     @Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/consoleproxy/CreateConsoleEndpointCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/consoleproxy/CreateConsoleEndpointCmd.java
index 11e84f1bef9..63b47e163b6 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/consoleproxy/CreateConsoleEndpointCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/consoleproxy/CreateConsoleEndpointCmd.java
@@ -35,7 +35,6 @@ import org.apache.cloudstack.consoleproxy.ConsoleAccessManager;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.utils.consoleproxy.ConsoleAccessUtils;
 import org.apache.commons.collections.MapUtils;
-import org.apache.log4j.Logger;
 
 import javax.inject.Inject;
 import java.util.Map;
@@ -46,7 +45,6 @@ import java.util.Map;
         authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
... 161138 lines suppressed ...