Alcor Controller Logging - futurewei-cloud/alcor-int GitHub Wiki

Alcor Controller Logging

1. Config logging

To configure a logging system, modify the following property files:

  • src/resource/ application-k8s-template.properties //Kubernetes & cluster setup

  • src/resource/application-onebox.properties //Local setup

  • Configuration properties

    • Logging level – start log level, lower level of logs than this logging level are filtered.

    • Logging level of web

    • logging.type – console or file logging

    • Log file location when logging type is file

    logging.level.root=info
    logging.level.org.springframework.web=info
    logging.file.path=/var/log
    logging.type=file

2. Logging

(1) Import log packages

import com.futurewei.alcor.controller.logging.Logger;
import com.futurewei.alcor.controller.logging.LoggerFactory;

(2) Get a logger using a logger factory.

Logger logger = LoggerFactory.getLogger();

(3) Call logger.log() wherever logging is needed.

  • Function formats

    log(Level level, String msg)
    log(Level level, String msg, Object s)
    log(Level level, String msg, Throwable e)
    entering(String sourceClass, String sourceMethod)
    exiting(String sourceClass, String sourceMethod)
  • e.g.)

    logger.log(Level.INFO, "Alcor Controller Log Started!");
    logger.exiting(this.getClass().getName(), e.getStatus());
    logger.exiting(this.getClass().getName(), e); 
    logger.entering(this.getClass().getName(),"PushNetworkResourceStates()"); 
    logger.exiting(this.getClass().getName(),"PushNetworkResourceStates()");
    

(4) To see logs using docker,

sudo docker logs  alcor-controller

(5) To see alcor controller logs of kubernetes nodes,

  • Get an alcor controller pod name.

    Kubectl get pods
    
  • run following commands to see console logs

    kubectl logs my-pod 				
    kubectl logs my-pod -c my-container
  • e.g.)

    kubectl logs alcor-5c9746c7b9-fmg2s
    kubectl logs alcor-5c9746c7b9-fmg2s -c alcor
  • run following commands to see file logs

    //1 container in a pod 
    kubectl exec my-pod -- ls /var/log
    kubectl exec alcor-5c9746c7b9-fmg2s -- vi /var/log/AlcorLog-2020-02-10.log  
    
    // multiple containers in a pod)
    kubectl exec my-pod -c my-container -- ls /var/log
    kubectl exec my-pod -c my-container -- vi /var/log/AlcorLog-2020-02-10.log
  • e.g.)

    kubectl exec alcor-5c9746c7b9-fmg2s  -c alcor --  ls  /var/log
    kubectl exec alcor-5c9746c7b9-fmg2s  -- vi /var/log/AlcorLog-2020-02-10.log  
    kubectl exec alcor-5c9746c7b9-fmg2s  -c alcor -- cat /var/log/AlcorLog-2020-02-10.log
⚠️ **GitHub.com Fallback** ⚠️