diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFactories.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFactories.java
index c37aec0..4f6f24e 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFactories.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFactories.java
@@ -28,7 +28,7 @@
  */
 public final class PcepFactories {
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepFactories.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepFactories.class);
 
     private static final GenericReader GENERIC_READER = new GenericReader();
 
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcInitiatedLspRequestVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcInitiatedLspRequestVer1.java
index 140919e..11d6ffb 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcInitiatedLspRequestVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcInitiatedLspRequestVer1.java
@@ -45,7 +45,7 @@
                                              <LSP>
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcInitiatedLspRequestVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcInitiatedLspRequestVer1.class);
 
     //PCEP SRP Object
     private PcepSrpObject srpObject;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepAttributeVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepAttributeVer1.java
index 2a7a30b..cb07001 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepAttributeVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepAttributeVer1.java
@@ -46,7 +46,7 @@
      *
      *      <metric-list>                     ::=<METRIC>[<metric-list>]
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepAttributeVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepAttributeVer1.class);
 
     public static final int OBJECT_HEADER_LENGTH = 4;
 
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepBandwidthObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepBandwidthObjectVer1.java
index aba398d..090c96f 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepBandwidthObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepBandwidthObjectVer1.java
@@ -41,7 +41,7 @@
                          The BANDWIDTH Object format
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepBandwidthObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepBandwidthObjectVer1.class);
     /*
      *  Requested bandwidth: BANDWIDTH Object-Type is 1.
         Bandwidth of an existing TE LSP for which a re-optimization is
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepCloseMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepCloseMsgVer1.java
index 16ec29b..fcf3421 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepCloseMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepCloseMsgVer1.java
@@ -57,7 +57,7 @@
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepCloseMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepCloseMsgVer1.class);
 
     // Pcep version: 1
     public static final byte PACKET_VERSION = 1;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepEndPointsObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepEndPointsObjectVer1.java
index d72bc5e..4690626 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepEndPointsObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepEndPointsObjectVer1.java
@@ -47,7 +47,7 @@
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepEndPointsObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepEndPointsObjectVer1.class);
 
     static final byte END_POINTS_OBJ_TYPE = 1;
     static final byte END_POINTS_OBJ_CLASS = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepEroObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepEroObjectVer1.java
index afe9090..76dc1fa 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepEroObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepEroObjectVer1.java
@@ -138,7 +138,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepEroObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepEroObjectVer1.class);
 
     public static final byte ERO_OBJ_TYPE = 1;
     public static final byte ERO_OBJ_CLASS = 7;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorInfoVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorInfoVer1.java
index 0f9bcf1..43c9f3c 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorInfoVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorInfoVer1.java
@@ -38,7 +38,7 @@
  */
 public class PcepErrorInfoVer1 implements PcepErrorInfo {
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepErrorInfoVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepErrorInfoVer1.class);
     //Error list is optional
     private List<PcepError> errList;
 
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorMsgVer1.java
index e893693..036f1f4 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorMsgVer1.java
@@ -61,7 +61,7 @@
        <error-list>                   ::=<error>[<error-list>]
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepOpenMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepOpenMsgVer1.class);
     public static final byte PACKET_VERSION = 1;
     public static final int PACKET_MINIMUM_LENGTH = 12;
     public static final PcepType MSG_TYPE = PcepType.ERROR;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorObjectVer1.java
index 3d274de..b6b0a42 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorObjectVer1.java
@@ -46,7 +46,7 @@
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepErrorObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepErrorObjectVer1.class);
 
     public static final byte ERROR_OBJ_TYPE = 1;
     public static final byte ERROR_OBJ_CLASS = 13;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorVer1.java
index 6e43271..7eb711c 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorVer1.java
@@ -46,7 +46,7 @@
            <ls-id-list>::=<LS>[<ls-id-list>]
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepErrorVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepErrorVer1.class);
 
     private boolean isErroInfoSet;
     //PcepErrorObject list
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4AdjacencyVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4AdjacencyVer1.java
index f11002b..bde6596 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4AdjacencyVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4AdjacencyVer1.java
@@ -44,7 +44,7 @@
 
                       FEC Object-Type is 3 IPv4 Adjacency
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv4AdjacencyVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv4AdjacencyVer1.class);
 
     public static final byte FEC_OBJ_TYPE = 3;
     public static final byte FEC_OBJ_CLASS = (byte) 226;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4UnnumberedAdjacencyVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4UnnumberedAdjacencyVer1.java
index dce64a6..e66b2fd 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4UnnumberedAdjacencyVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4UnnumberedAdjacencyVer1.java
@@ -48,7 +48,7 @@
 
              FEC Object-Type is 5, Unnumbered Adjacency with IPv4 NodeIDs
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv4UnnumberedAdjacencyVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv4UnnumberedAdjacencyVer1.class);
 
     public static final byte FEC_OBJ_TYPE = 5;
     public static final byte FEC_OBJ_CLASS = (byte) 226;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4Ver1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4Ver1.java
index cddbaf9..63265f6 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4Ver1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv4Ver1.java
@@ -42,7 +42,7 @@
 
                        FEC Object-Type is 1 IPv4 Node ID
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv4Ver1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv4Ver1.class);
 
     public static final byte FEC_OBJ_TYPE = 1;
     public static final byte FEC_OBJ_CLASS = (byte) 226;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv6AdjacencyVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv6AdjacencyVer1.java
index e981a38..cd60d92 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv6AdjacencyVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv6AdjacencyVer1.java
@@ -48,7 +48,7 @@
 
                       FEC Object-Type is 4 IPv6 Adjacency
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv6AdjacencyVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv6AdjacencyVer1.class);
 
     public static final byte FEC_OBJ_TYPE = 4;
     public static final byte FEC_OBJ_CLASS = (byte) 226;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv6Ver1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv6Ver1.java
index 67e2afa..1975b04 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv6Ver1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepFecObjectIPv6Ver1.java
@@ -44,7 +44,7 @@
 
                        FEC Object-Type is 2 IPv6 Node ID
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv6Ver1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepFecObjectIPv6Ver1.class);
 
     public static final byte FEC_OBJ_TYPE = 2;
     public static final byte FEC_OBJ_CLASS = (byte) 226;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepInitiateMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepInitiateMsgVer1.java
index 0818645..f50a8d4 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepInitiateMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepInitiateMsgVer1.java
@@ -42,7 +42,7 @@
  */
 class PcepInitiateMsgVer1 implements PcepInitiateMsg {
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepInitiateMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepInitiateMsgVer1.class);
 
     // Ref : PCE initiated tunnel setup draft-ietf-pce-pce-initiated-lsp-03, section 5.1
     /*      <PCInitiate Message>             ::= <Common Header>
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepInterLayerObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepInterLayerObjectVer1.java
index 4602393..f88fa14 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepInterLayerObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepInterLayerObjectVer1.java
@@ -36,7 +36,7 @@
         |    Reserved                                               |N|I|
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepInterLayerObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepInterLayerObjectVer1.class);
 
     public static final byte INTER_LAYER_OBJ_TYPE = 1;
     public static final byte INTER_LAYER_OBJ_CLASS = 18;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepIroObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepIroObjectVer1.java
index e39f35b..78df1a9 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepIroObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepIroObjectVer1.java
@@ -56,7 +56,7 @@
         | IPv4 address (continued)      | Prefix Length |      Resvd    |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepIroObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepIroObjectVer1.class);
 
     public static final byte IRO_OBJ_TYPE = 1;
     public static final byte IRO_OBJ_CLASS = 10;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepKeepaliveMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepKeepaliveMsgVer1.java
index df53007..ff930a4 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepKeepaliveMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepKeepaliveMsgVer1.java
@@ -42,7 +42,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepKeepaliveMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepKeepaliveMsgVer1.class);
     // Pcep version: 1
     public static final byte PACKET_VERSION = 1;
     public static final int PACKET_MINIMUM_LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLSObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLSObjectVer1.java
index 666e5f6..f902cc6 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLSObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLSObjectVer1.java
@@ -69,7 +69,7 @@
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepLSObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLSObjectVer1.class);
 
     public static final byte LS_OBJ_TYPE_NODE_VALUE = 1;
     public static final byte LS_OBJ_TYPE_LINK_VALUE = 2;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelObjectVer1.java
index 7ec2899..7e3e554 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelObjectVer1.java
@@ -53,7 +53,7 @@
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      The LABEL Object format
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepLspObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLspObjectVer1.class);
 
     public static final byte LABEL_OBJ_TYPE = 1;
     public static final byte LABEL_OBJ_CLASS = (byte) 225;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeObjectVer1.java
index 00f61ae..ea62367 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeObjectVer1.java
@@ -51,7 +51,7 @@
 
                                LABEL-RANGE Object
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepLabelRangeObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLabelRangeObjectVer1.class);
 
     public static final byte LABEL_RANGE_OBJ_TYPE = 1;
     public static final byte LABEL_RANGE_OBJ_CLASS = 60; //to be defined
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeResvMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeResvMsgVer1.java
index b8e2f6b..b5789be 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeResvMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeResvMsgVer1.java
@@ -49,7 +49,7 @@
           Where
                <labelrange-list>::=<LABEL-RANGE>[<labelrange-list>]
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepLabelRangeResvMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLabelRangeResvMsgVer1.class);
 
     public static final byte PACKET_VERSION = 1;
     // LabelRangeResvMsgMinLength = COMMON-HEADER(4)+SrpObjMinLentgh(12)+LABEL-RANGE-MIN-LENGTH(12)
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeVer1.java
index 89d1c90..83ec8aa 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelRangeVer1.java
@@ -34,7 +34,7 @@
  */
 public class PcepLabelRangeVer1 implements PcepLabelRange {
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepLabelRangeVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLabelRangeVer1.class);
 
     /*
         <label-range> ::= <SRP>
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelUpdateMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelUpdateMsgVer1.java
index 9a7e48c..0651c0b 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelUpdateMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelUpdateMsgVer1.java
@@ -63,7 +63,7 @@
                                                         [<label-list>]
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepLabelUpdateMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLabelUpdateMsgVer1.class);
 
     public static final byte PACKET_VERSION = 1;
 
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelUpdateVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelUpdateVer1.java
index 5623c25..8603146 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelUpdateVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLabelUpdateVer1.java
@@ -55,7 +55,7 @@
              <label-list >           ::= <LABEL>
                                          [<label-list>]
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepLabelUpdateVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLabelUpdateVer1.class);
 
     //Either PceLabelDownload or PceLabelMap is mandatory.
     //label Download
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLspObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLspObjectVer1.java
index 2deacdc..2cf184d 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLspObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLspObjectVer1.java
@@ -56,7 +56,7 @@
 
                      The LSP Object format
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepLspObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLspObjectVer1.class);
 
     public static final byte LSP_OBJ_TYPE = 1;
     public static final byte LSP_OBJ_CLASS = 32;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLspaObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLspaObjectVer1.java
index eb5b68c..67e0942 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLspaObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepLspaObjectVer1.java
@@ -53,7 +53,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepLspaObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLspaObjectVer1.class);
 
     public static final byte LSPA_OBJ_TYPE = 1;
     public static final byte LSPA_OBJ_CLASS = 9;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMessageVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMessageVer1.java
index cddfa91..c2be8e5 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMessageVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMessageVer1.java
@@ -32,7 +32,7 @@
  */
 public abstract class PcepMessageVer1 {
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepFactories.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepFactories.class);
 
     // version: 1.0
     public static final byte WIRE_VERSION = 1;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMetricObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMetricObjectVer1.java
index 8bbdd8d..d149189 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMetricObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMetricObjectVer1.java
@@ -42,7 +42,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepMetricObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepMetricObjectVer1.class);
 
     public static final byte METRIC_OBJ_TYPE = 1;
     public static final byte METRIC_OBJ_CLASS = 6;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMsgPathVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMsgPathVer1.java
index 98a3b4e..9b2f5aa 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMsgPathVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepMsgPathVer1.java
@@ -35,7 +35,7 @@
      *  <path>         ::= <ERO><attribute-list>
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepMsgPathVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepMsgPathVer1.class);
     //PcepEroObject
     private PcepEroObject eroObj;
     private boolean isEroObjectSet;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepOpenMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepOpenMsgVer1.java
index 5c9b947..0d5dc11 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepOpenMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepOpenMsgVer1.java
@@ -52,7 +52,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepOpenMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepOpenMsgVer1.class);
 
     public static final byte PACKET_VERSION = 1;
     public static final int PACKET_MINIMUM_LENGTH = 12;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepOpenObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepOpenObjectVer1.java
index e8d504f..51a8eaf 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepOpenObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepOpenObjectVer1.java
@@ -60,7 +60,7 @@
 
                      The OPEN Object format
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepOpenObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepOpenObjectVer1.class);
 
     public static final PcepType MSG_TYPE = PcepType.OPEN;
     public static final byte OPEN_OBJECT_VERSION = 1;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRPObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRPObjectVer1.java
index f7ce77f..0106299 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRPObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRPObjectVer1.java
@@ -48,7 +48,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepRPObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepRPObjectVer1.class);
 
     public static final byte RP_OBJ_TYPE = 1;
     public static final byte RP_OBJ_CLASS = 2;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepReportMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepReportMsgVer1.java
index 11b3bc3..ad2cc47 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepReportMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepReportMsgVer1.java
@@ -62,7 +62,7 @@
      *                             [<IRO>]
      *    <metric-list>       ::=<METRIC>[<metric-list>]
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepReportMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepReportMsgVer1.class);
 
     public static final byte PACKET_VERSION = 1;
     //PACKET_MINIMUM_LENGTH = CommonHeaderLen(4)+LspObjMinLen(8)
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRroObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRroObjectVer1.java
index b192ba9..ae8ec34 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRroObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRroObjectVer1.java
@@ -94,7 +94,7 @@
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepRroObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepRroObjectVer1.class);
 
     public static final byte RRO_OBJ_TYPE = 1;
     public static final byte RRO_OBJ_CLASS = 8;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepSrpObjectVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepSrpObjectVer1.java
index cd4f085..ca0a317 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepSrpObjectVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepSrpObjectVer1.java
@@ -53,7 +53,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepSrpObjectVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepSrpObjectVer1.class);
 
     public static final byte SRP_OBJ_TYPE = 1;
     public static final byte SRP_OBJ_CLASS = 33;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepStateReportVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepStateReportVer1.java
index 124bde9..4ebe8a8 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepStateReportVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepStateReportVer1.java
@@ -45,7 +45,7 @@
                <path>     ::= <ERO><attribute-list>[<RRO>]
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepStateReport.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepStateReport.class);
 
     public static final int OBJECT_HEADER_LENGTH = 4;
 
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepUpdateMsgVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepUpdateMsgVer1.java
index 0af7ffa..fdc6e1f 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepUpdateMsgVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepUpdateMsgVer1.java
@@ -75,7 +75,7 @@
      *          Reference:Internet-Draft-PCEP Extensions-for-Stateful-PCE-10
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepUpdateMsgVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepUpdateMsgVer1.class);
 
     public static final byte PACKET_VERSION = 1;
     // UpdateMsgMinLength = SrpObjMinLentgh(12)+LspObjMinLength(8)+EroObjMinLength(12)+ CommonHeaderLength(4)
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepUpdateRequestVer1.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepUpdateRequestVer1.java
index 6c8edb8..836b47d 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepUpdateRequestVer1.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepUpdateRequestVer1.java
@@ -43,7 +43,7 @@
      * <attribute-list> is defined in [RFC5440] and extended by PCEP extensions.
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepUpdateRequestVer1.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepUpdateRequestVer1.class);
 
     //PCEP SRP Object
     private PcepSrpObject srpObject;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AdministrativeGroupSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AdministrativeGroupSubTlv.java
index 6c59130..373e5db 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AdministrativeGroupSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AdministrativeGroupSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(AdministrativeGroupSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(AdministrativeGroupSubTlv.class);
 
     public static final short TYPE = 22;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AutonomousSystemNumberSubObject.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AutonomousSystemNumberSubObject.java
index 5c6b3b7..9bf392d 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AutonomousSystemNumberSubObject.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AutonomousSystemNumberSubObject.java
@@ -41,7 +41,7 @@
     |L|    Type     |     Length    |      AS number (2-octet)      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(AutonomousSystemNumberSubObject.class);
+    private static final Logger log = LoggerFactory.getLogger(AutonomousSystemNumberSubObject.class);
 
     public static final byte TYPE = (byte) 0x32;
     public static final byte LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AutonomousSystemSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AutonomousSystemSubTlv.java
index 9595ad6..7d50842 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AutonomousSystemSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/AutonomousSystemSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(AutonomousSystemSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(AutonomousSystemSubTlv.class);
 
     public static final short TYPE = 1;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/BgpLsIdentifierSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/BgpLsIdentifierSubTlv.java
index 4f874e3..a36e846 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/BgpLsIdentifierSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/BgpLsIdentifierSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(BgpLsIdentifierSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(BgpLsIdentifierSubTlv.class);
 
     public static final short TYPE = 2;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/ErrorObjListWithOpen.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/ErrorObjListWithOpen.java
index 4cd0d9a..1876215 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/ErrorObjListWithOpen.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/ErrorObjListWithOpen.java
@@ -38,7 +38,7 @@
     private PcepOpenObject openObject;
     // flag to check if open object is set or not
     private boolean isOpenObjectSet;
-    protected static final Logger log = LoggerFactory.getLogger(ErrorObjListWithOpen.class);
+    private static final Logger log = LoggerFactory.getLogger(ErrorObjListWithOpen.class);
 
     /**
      * Constructor to initialize Error and OPEN object.
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/GmplsCapabilityTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/GmplsCapabilityTlv.java
index 676eec4..2125185 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/GmplsCapabilityTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/GmplsCapabilityTlv.java
@@ -41,7 +41,7 @@
     |                             Flags                             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(GmplsCapabilityTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(GmplsCapabilityTlv.class);
 
     public static final short TYPE = 14;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4InterfaceAddressSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4InterfaceAddressSubTlv.java
index f3672ac..3821daa 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4InterfaceAddressSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4InterfaceAddressSubTlv.java
@@ -40,7 +40,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(IPv4InterfaceAddressSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv4InterfaceAddressSubTlv.class);
 
     public static final short TYPE = 7;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4NeighborAddressSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4NeighborAddressSubTlv.java
index a9fcf4c..1142209 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4NeighborAddressSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4NeighborAddressSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(IPv4NeighborAddressSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv4NeighborAddressSubTlv.class);
 
     public static final short TYPE = 8;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4RouterIdOfLocalNodeSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4RouterIdOfLocalNodeSubTlv.java
index de0cb92..81b48d0 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4RouterIdOfLocalNodeSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4RouterIdOfLocalNodeSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-++-+-+-+-
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(IPv4RouterIdOfLocalNodeSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv4RouterIdOfLocalNodeSubTlv.class);
 
     public static final short TYPE = 17;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4RouterIdOfRemoteNodeSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4RouterIdOfRemoteNodeSubTlv.java
index 0d7d000..f5b6daa 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4RouterIdOfRemoteNodeSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4RouterIdOfRemoteNodeSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-++-+-+-+-
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(IPv4RouterIdOfRemoteNodeSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv4RouterIdOfRemoteNodeSubTlv.class);
 
     public static final short TYPE = 19;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4SubObject.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4SubObject.java
index 3d0d3f8..45fa2b3 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4SubObject.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv4SubObject.java
@@ -43,7 +43,7 @@
     | IPv4 address (continued)      | Prefix Length |      Resvd    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(IPv4SubObject.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv4SubObject.class);
 
     public static final byte TYPE = 0x01;
     public static final byte LENGTH = 8;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6InterfaceAddressSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6InterfaceAddressSubTlv.java
index 657a553..934c786 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6InterfaceAddressSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6InterfaceAddressSubTlv.java
@@ -29,7 +29,7 @@
  */
 public class IPv6InterfaceAddressSubTlv implements PcepValueType {
 
-    protected static final Logger log = LoggerFactory.getLogger(IPv6InterfaceAddressSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv6InterfaceAddressSubTlv.class);
 
     public static final short TYPE = 9;
     public static final short LENGTH = 20;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6NeighborAddressSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6NeighborAddressSubTlv.java
index a318024..6eedfa5 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6NeighborAddressSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6NeighborAddressSubTlv.java
@@ -28,7 +28,7 @@
  * Provides IPv6 Neighbor Address. Reference :[RFC6119]/4.3.
  */
 public class IPv6NeighborAddressSubTlv implements PcepValueType {
-    protected static final Logger log = LoggerFactory.getLogger(IPv6NeighborAddressSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv6NeighborAddressSubTlv.class);
 
     public static final short TYPE = 10;
     public static final short LENGTH = 20;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6RouterIdofLocalNodeSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6RouterIdofLocalNodeSubTlv.java
index fc34f99..b269803 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6RouterIdofLocalNodeSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6RouterIdofLocalNodeSubTlv.java
@@ -28,7 +28,7 @@
  * Provides IPv6 TE Router Id of Local Node. Reference :[RFC6119]/4.1.
  */
 public class IPv6RouterIdofLocalNodeSubTlv implements PcepValueType {
-    protected static final Logger log = LoggerFactory.getLogger(IPv6RouterIdofLocalNodeSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv6RouterIdofLocalNodeSubTlv.class);
 
     public static final short TYPE = 18;
     public static final short LENGTH = 20;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6RouterIdofRemoteNodeSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6RouterIdofRemoteNodeSubTlv.java
index 03291a7..1512aa2 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6RouterIdofRemoteNodeSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6RouterIdofRemoteNodeSubTlv.java
@@ -28,7 +28,7 @@
  * Provides IPv6 TE Router Id of Remote Node.  Reference :[RFC6119]/4.1.
  */
 public class IPv6RouterIdofRemoteNodeSubTlv implements PcepValueType {
-    protected static final Logger log = LoggerFactory.getLogger(IPv6RouterIdofRemoteNodeSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv6RouterIdofRemoteNodeSubTlv.class);
 
     public static final short TYPE = 20;
     public static final short LENGTH = 20;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6SubObject.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6SubObject.java
index 2ef1309..e570255 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6SubObject.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IPv6SubObject.java
@@ -80,7 +80,7 @@
                maintain this tunnel (usually in the face of an outage
                of the link it was previously routed over).
      */
-    protected static final Logger log = LoggerFactory.getLogger(IPv6SubObject.class);
+    private static final Logger log = LoggerFactory.getLogger(IPv6SubObject.class);
 
     public static final short TYPE = 0x02;
     public static final short LENGTH = 20;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IgpMetricSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IgpMetricSubTlv.java
index d0a85c1..93199c5 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IgpMetricSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IgpMetricSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(IgpMetricSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IgpMetricSubTlv.class);
 
     public static final short TYPE = 29;
     private short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IgpRouterIdSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IgpRouterIdSubTlv.java
index a6e0a79..f57dafb 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IgpRouterIdSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IgpRouterIdSubTlv.java
@@ -40,7 +40,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(IgpRouterIdSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IgpRouterIdSubTlv.class);
 
     public static final short TYPE = 4;
     private final short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IsisAreaIdentifierSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IsisAreaIdentifierSubTlv.java
index 097202b..b9256cc 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IsisAreaIdentifierSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/IsisAreaIdentifierSubTlv.java
@@ -40,7 +40,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(IsisAreaIdentifierSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(IsisAreaIdentifierSubTlv.class);
 
     public static final short TYPE = 16;
     private short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LabelSubObject.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LabelSubObject.java
index 7287957..aadb4be 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LabelSubObject.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LabelSubObject.java
@@ -41,7 +41,7 @@
     |       Contents of Label Object                                |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(LabelSubObject.class);
+    private static final Logger log = LoggerFactory.getLogger(LabelSubObject.class);
 
     public static final short TYPE = 0x03;
     public static final short LENGTH = 8;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkAttributesTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkAttributesTlv.java
index 5b3c9d0..2c172f9 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkAttributesTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkAttributesTlv.java
@@ -47,7 +47,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(LinkAttributesTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(LinkAttributesTlv.class);
 
     public static final short TYPE = (short) 65286;
     short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkDescriptorsTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkDescriptorsTlv.java
index a80922f..1505a42 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkDescriptorsTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkDescriptorsTlv.java
@@ -48,7 +48,7 @@
 
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(LinkDescriptorsTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(LinkDescriptorsTlv.class);
 
     public static final short TYPE = (short) 65284;
     public short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersSubTlv.java
index 5ad0c45..bf55f44 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersSubTlv.java
@@ -41,7 +41,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(LinkLocalRemoteIdentifiersSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(LinkLocalRemoteIdentifiersSubTlv.class);
 
     public static final short TYPE = 6;
     public static final short LENGTH = 8;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkNameAttributeSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkNameAttributeSubTlv.java
index 4e6da4d..ce3902f 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkNameAttributeSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkNameAttributeSubTlv.java
@@ -40,7 +40,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(LinkNameAttributeSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(LinkNameAttributeSubTlv.class);
 
     public static final short TYPE = 32;
     private short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkProtectionTypeSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkProtectionTypeSubTlv.java
index bcdad30..3f992c4 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkProtectionTypeSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LinkProtectionTypeSubTlv.java
@@ -39,7 +39,7 @@
      |Protection Cap | Reserved      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(LinkProtectionTypeSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(LinkProtectionTypeSubTlv.class);
 
     public static final short TYPE = 27;
     public static final short LENGTH = 2;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LocalNodeDescriptorsTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LocalNodeDescriptorsTlv.java
index e256227..ea7f277 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LocalNodeDescriptorsTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LocalNodeDescriptorsTlv.java
@@ -47,7 +47,7 @@
      Note: Length is including header here. Refer Routing Universe TLV.
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(LocalNodeDescriptorsTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(LocalNodeDescriptorsTlv.class);
 
     public static final short TYPE = (short) 65282;
     short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LsCapabilityTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LsCapabilityTlv.java
index 81cdf5f..566717d 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LsCapabilityTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/LsCapabilityTlv.java
@@ -40,7 +40,7 @@
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(LsCapabilityTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(LsCapabilityTlv.class);
 
     public static final short TYPE = (short) 65280;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MaximumLinkBandwidthSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MaximumLinkBandwidthSubTlv.java
index aaa9408..288ab4d 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MaximumLinkBandwidthSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MaximumLinkBandwidthSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-++-+-+-+-
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(MaximumLinkBandwidthSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(MaximumLinkBandwidthSubTlv.class);
 
     public static final short TYPE = 23;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthSubTlv.java
index c4c71ad..1a74340 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-++-+-+-+-
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(MaximumReservableLinkBandwidthSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(MaximumReservableLinkBandwidthSubTlv.class);
 
     public static final short TYPE = 24;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MplsProtocolMaskSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MplsProtocolMaskSubTlv.java
index de26781..0ca4fed 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MplsProtocolMaskSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/MplsProtocolMaskSubTlv.java
@@ -38,7 +38,7 @@
      |L|R|  Reserved |
      +-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(MplsProtocolMaskSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(MplsProtocolMaskSubTlv.class);
 
     public static final short TYPE = 28;
     public static final short LENGTH = 1;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopIPv4addressTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopIPv4addressTlv.java
index f99d5f3..1848bf5 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopIPv4addressTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopIPv4addressTlv.java
@@ -44,7 +44,7 @@
                       NEXTHOP-IPV4-ADDRESS TLV
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(NexthopIPv4addressTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(NexthopIPv4addressTlv.class);
 
     public static final short TYPE = (short) 65289; //to be defined
     //Length is header + value
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopIPv6addressTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopIPv6addressTlv.java
index d662b14..fdcf9e7 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopIPv6addressTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopIPv6addressTlv.java
@@ -46,7 +46,7 @@
                      NEXTHOP-IPV6-ADDRESS TLV:
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(NexthopIPv6addressTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(NexthopIPv6addressTlv.class);
 
     public static final short TYPE = 100; //to be defined
     //Length is header + value
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopUnnumberedIPv4IDTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopUnnumberedIPv4IDTlv.java
index b64e735..8f03277 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopUnnumberedIPv4IDTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NexthopUnnumberedIPv4IDTlv.java
@@ -46,7 +46,7 @@
                       NEXTHOP-UNNUMBERED-IPV4-ID TLV
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(NexthopUnnumberedIPv4IDTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(NexthopUnnumberedIPv4IDTlv.class);
 
     public static final short TYPE = 1; //to be defined
     //Length is header + value
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeAttributesTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeAttributesTlv.java
index 57491cb..633c46d 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeAttributesTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeAttributesTlv.java
@@ -49,7 +49,7 @@
 
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(NodeAttributesTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(NodeAttributesTlv.class);
 
     public static final short TYPE = (short) 65285;
     short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeFlagBitsSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeFlagBitsSubTlv.java
index 78c90c9..5b0cc78 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeFlagBitsSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeFlagBitsSubTlv.java
@@ -38,7 +38,7 @@
      +-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(NodeFlagBitsSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(NodeFlagBitsSubTlv.class);
 
     public static final short TYPE = 13;
     public static final short LENGTH = 1;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeNameSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeNameSubTlv.java
index 58ebc0c..fc7648c 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeNameSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/NodeNameSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(NodeNameSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(NodeNameSubTlv.class);
 
     public static final short TYPE = 15;
     public final short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OpaqueLinkAttributeSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OpaqueLinkAttributeSubTlv.java
index 94ed39a..cec7292 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OpaqueLinkAttributeSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OpaqueLinkAttributeSubTlv.java
@@ -41,7 +41,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(OpaqueLinkAttributeSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(OpaqueLinkAttributeSubTlv.class);
 
     public static final short TYPE = 31;
     private final short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OpaqueNodePropertiesSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OpaqueNodePropertiesSubTlv.java
index 11b3c99..a03e3de 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OpaqueNodePropertiesSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OpaqueNodePropertiesSubTlv.java
@@ -39,7 +39,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(OpaqueNodePropertiesSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(OpaqueNodePropertiesSubTlv.class);
 
     public static final short TYPE = 14;
     private final short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OspfAreaIdSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OspfAreaIdSubTlv.java
index 09a6836..5e77e2f 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OspfAreaIdSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/OspfAreaIdSubTlv.java
@@ -38,7 +38,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(OspfAreaIdSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(OspfAreaIdSubTlv.class);
 
     public static final short TYPE = 3;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PathKeySubObject.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PathKeySubObject.java
index 826a9ef..dd177b4 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PathKeySubObject.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PathKeySubObject.java
@@ -44,7 +44,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PathKeySubObject.class);
+    private static final Logger log = LoggerFactory.getLogger(PathKeySubObject.class);
 
     public static final byte TYPE = 0x40;
     public static final byte LENGTH = 8;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PathSetupTypeTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PathSetupTypeTlv.java
index dc95a92..1f993de 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PathSetupTypeTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PathSetupTypeTlv.java
@@ -43,7 +43,7 @@
                      Figure 1: PATH-SETUP-TYPE TLV
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(PathSetupTypeTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(PathSetupTypeTlv.class);
 
     public static final short TYPE = 28;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PceccCapabilityTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PceccCapabilityTlv.java
index 3b51e3d..0f29c53 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PceccCapabilityTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PceccCapabilityTlv.java
@@ -40,7 +40,7 @@
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(PceccCapabilityTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(PceccCapabilityTlv.class);
 
     public static final short TYPE = (short) 65287;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelDbVerTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelDbVerTlv.java
index ba0c8ad..b3ace4b 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelDbVerTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelDbVerTlv.java
@@ -41,7 +41,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(PcepLabelDbVerTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLabelDbVerTlv.class);
 
     public static final short TYPE = 34;
     public static final short LENGTH = 8;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelDownload.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelDownload.java
index fbe6038..90c665b 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelDownload.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelDownload.java
@@ -31,7 +31,7 @@
  */
 public class PcepLabelDownload {
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepLabelDownload.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLabelDownload.class);
 
     //PCEP SPR Object
     private PcepSrpObject srpObject;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelMap.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelMap.java
index 5ec500c..00fec74 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelMap.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepLabelMap.java
@@ -30,7 +30,7 @@
  */
 public class PcepLabelMap {
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepLabelMap.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepLabelMap.class);
     //PCEP SRP Object
     private PcepSrpObject srpObject;
     //PCEP Label Object
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepObjectHeader.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepObjectHeader.java
index 22c3f14..ad4615c 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepObjectHeader.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepObjectHeader.java
@@ -45,7 +45,7 @@
                       PCEP Common Object Header
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepObjectHeader.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepObjectHeader.class);
 
     public static final boolean REQ_OBJ_MUST_PROCESS = true;
     public static final boolean REQ_OBJ_OPTIONAL_PROCESS = false;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepRsvpObjectHeader.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepRsvpObjectHeader.java
index a9400cd..1a47c3c 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepRsvpObjectHeader.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepRsvpObjectHeader.java
@@ -40,7 +40,7 @@
               ERROR_SPEC object Header
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepRsvpObjectHeader.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepRsvpObjectHeader.class);
 
     public static final boolean REQ_OBJ_MUST_PROCESS = true;
     public static final boolean REQ_OBJ_OPTIONAL_PROCESS = false;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepRsvpSpecObjHeader.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepRsvpSpecObjHeader.java
index b1e0317..50c4699 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepRsvpSpecObjHeader.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/PcepRsvpSpecObjHeader.java
@@ -40,7 +40,7 @@
               ERROR_SPEC object Header
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(PcepRsvpSpecObjHeader.class);
+    private static final Logger log = LoggerFactory.getLogger(PcepRsvpSpecObjHeader.class);
 
     private short objLen;
     private byte objClassNum;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/RemoteNodeDescriptorsTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/RemoteNodeDescriptorsTlv.java
index 7c73253..5c9751d 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/RemoteNodeDescriptorsTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/RemoteNodeDescriptorsTlv.java
@@ -47,7 +47,7 @@
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(RemoteNodeDescriptorsTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(RemoteNodeDescriptorsTlv.class);
 
     public static final short TYPE = (short) 65283;
     short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/RoutingUniverseTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/RoutingUniverseTlv.java
index 166f0b2..c555da1 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/RoutingUniverseTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/RoutingUniverseTlv.java
@@ -50,7 +50,7 @@
                    +------------+---------------------+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(RoutingUniverseTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(RoutingUniverseTlv.class);
 
     public static final short TYPE = (short) 65281;
     public static final short LENGTH = 8;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SharedRiskLinkGroupSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SharedRiskLinkGroupSubTlv.java
index e713169..6ff5639 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SharedRiskLinkGroupSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SharedRiskLinkGroupSubTlv.java
@@ -46,7 +46,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(SharedRiskLinkGroupSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(SharedRiskLinkGroupSubTlv.class);
 
     public static final short TYPE = 30;
 
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SrEroSubObject.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SrEroSubObject.java
index d39792b..77c803d 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SrEroSubObject.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SrEroSubObject.java
@@ -82,7 +82,7 @@
            NAI for Unnumbered adjacency with IPv4 Node IDs
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(SrEroSubObject.class);
+    private static final Logger log = LoggerFactory.getLogger(SrEroSubObject.class);
 
     public static final short TYPE = 0x24; //TODO : type to be defined
     public static final short LENGTH = 12;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SrPceCapabilityTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SrPceCapabilityTlv.java
index fe17862..7208785 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SrPceCapabilityTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SrPceCapabilityTlv.java
@@ -43,7 +43,7 @@
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                fig: SR-PCE-CAPABILITY TLV format
      */
-    protected static final Logger log = LoggerFactory.getLogger(SrPceCapabilityTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(SrPceCapabilityTlv.class);
 
     public static final short TYPE = 26;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulIPv4LspIdentifiersTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulIPv4LspIdentifiersTlv.java
index 86a8e86..a05b4e5 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulIPv4LspIdentifiersTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulIPv4LspIdentifiersTlv.java
@@ -50,7 +50,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(StatefulIPv4LspIdentifiersTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(StatefulIPv4LspIdentifiersTlv.class);
 
     public static final short TYPE = 18;
     public static final short LENGTH = 16;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulLspDbVerTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulLspDbVerTlv.java
index 6db58f8..b5dfeea 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulLspDbVerTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulLspDbVerTlv.java
@@ -47,7 +47,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(StatefulLspDbVerTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(StatefulLspDbVerTlv.class);
 
     public static final short TYPE = 23;
     public static final short LENGTH = 8;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulLspErrorCodeTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulLspErrorCodeTlv.java
index 214eebe..3899d73 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulLspErrorCodeTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulLspErrorCodeTlv.java
@@ -45,7 +45,7 @@
 
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(StatefulLspErrorCodeTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(StatefulLspErrorCodeTlv.class);
 
     public static final short TYPE = 20;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulPceCapabilityTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulPceCapabilityTlv.java
index 673dcb2..d184142 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulPceCapabilityTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulPceCapabilityTlv.java
@@ -43,7 +43,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(StatefulPceCapabilityTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(StatefulPceCapabilityTlv.class);
 
     public static final short TYPE = 16;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulRsvpErrorSpecTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulRsvpErrorSpecTlv.java
index 0b28828..ce2ed6c 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulRsvpErrorSpecTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/StatefulRsvpErrorSpecTlv.java
@@ -31,7 +31,7 @@
  */
 public class StatefulRsvpErrorSpecTlv implements PcepValueType {
 
-    protected static final Logger log = LoggerFactory.getLogger(StatefulRsvpErrorSpecTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(StatefulRsvpErrorSpecTlv.class);
 
     /*                  RSVP-ERROR-SPEC TLV format
      * Reference :PCEP Extensions for Stateful PCE draft-ietf-pce-stateful-pce-10
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SymbolicPathNameTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SymbolicPathNameTlv.java
index abbf365..faad33a 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SymbolicPathNameTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/SymbolicPathNameTlv.java
@@ -44,7 +44,7 @@
          |                                                               |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
-    protected static final Logger log = LoggerFactory.getLogger(SymbolicPathNameTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(SymbolicPathNameTlv.class);
 
     public static final short TYPE = 17;
     private short hLength;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/TEDefaultMetricSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/TEDefaultMetricSubTlv.java
index 0e9186f..ab6f814 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/TEDefaultMetricSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/TEDefaultMetricSubTlv.java
@@ -40,7 +40,7 @@
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
      */
-    protected static final Logger log = LoggerFactory.getLogger(TEDefaultMetricSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(TEDefaultMetricSubTlv.class);
 
     public static final short TYPE = 26;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/UnreservedBandwidthSubTlv.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/UnreservedBandwidthSubTlv.java
index 0d95ed9..6f3b065 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/UnreservedBandwidthSubTlv.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/types/UnreservedBandwidthSubTlv.java
@@ -39,7 +39,7 @@
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
 
-    protected static final Logger log = LoggerFactory.getLogger(UnreservedBandwidthSubTlv.class);
+    private static final Logger log = LoggerFactory.getLogger(UnreservedBandwidthSubTlv.class);
 
     public static final short TYPE = 25;
     public static final short LENGTH = 4;
diff --git a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/util/HexDump.java b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/util/HexDump.java
index 7a29b71..b5897d5 100644
--- a/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/util/HexDump.java
+++ b/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/util/HexDump.java
@@ -23,7 +23,7 @@
  * Provides Hex Dump for debugging.
  */
 public final class HexDump {
-    protected static final Logger log = LoggerFactory.getLogger(HexDump.class);
+    private static final Logger log = LoggerFactory.getLogger(HexDump.class);
 
     private HexDump() {
     }
