Skip to content

Commit

Permalink
Open [feature][function] add the ability to customize logging level …
Browse files Browse the repository at this point in the history
…for Go & Python functions (apache#16939)

Signed-off-by: laminar <[email protected]>
  • Loading branch information
tpiperatgod authored Aug 8, 2022
1 parent e530f34 commit 514b9c0
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
7 changes: 7 additions & 0 deletions pulsar-function-go/logutil/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import (
)

const (
logLevelEnvName = "LOGGING_LEVEL"
defaultLogLevel = log.InfoLevel
defaultLogTimeFormat = "2006/01/02 15:04:05.000"
)
Expand Down Expand Up @@ -175,6 +176,12 @@ func (f *TextFormatter) Format(entry *log.Entry) ([]byte, error) {

func init() {
log.SetLevel(defaultLogLevel)
// lookup and parse the logLevel variable
if logLevelStr, exist := os.LookupEnv(logLevelEnvName); exist {
if logLevel, err := log.ParseLevel(logLevelStr); err == nil {
log.SetLevel(logLevel)
}
}
log.AddHook(&contextHook{})
log.SetFormatter(&TextFormatter{})
}
5 changes: 4 additions & 1 deletion pulsar-functions/instance/src/main/python/log.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,10 @@ def init_logger(level, logfile, logging_config_file):
os.environ['LOG_FILE'] = logfile
logging.config.fileConfig(logging_config_file)
Log = logging.getLogger()
Log.setLevel(level)
if level is not None:
Log.setLevel(level)
for h in Log.handlers:
h.setLevel(level)

# set print to redirect to logger
class StreamToLogger(object):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def main():
parser.add_argument('--max_buffered_tuples', required=True, help='Maximum number of Buffered tuples')
parser.add_argument('--logging_directory', required=True, help='Logging Directory')
parser.add_argument('--logging_file', required=True, help='Log file name')
parser.add_argument('--logging_level', required=False, help='Logging level')
parser.add_argument('--logging_config_file', required=True, help='Config file for logging')
parser.add_argument('--expected_healthcheck_interval', required=True, help='Expected time in seconds between health checks', type=int)
parser.add_argument('--secrets_provider', required=False, help='The classname of the secrets provider')
Expand Down Expand Up @@ -154,7 +155,15 @@ def main():
log_file = os.path.join(args.logging_directory,
util.getFullyQualifiedFunctionName(function_details.tenant, function_details.namespace, function_details.name),
"%s-%s.log" % (args.logging_file, args.instance_id))
log.init_logger(logging.INFO, log_file, args.logging_config_file)
logging_level = {"notset": logging.NOTSET,
"debug": logging.DEBUG,
"info": logging.INFO,
"warn": logging.WARNING,
"warning": logging.WARNING,
"error": logging.ERROR,
"critical": logging.CRITICAL,
"fatal": logging.CRITICAL}.get(args.logging_level, None)
log.init_logger(logging_level, log_file, args.logging_config_file)

Log.info("Starting Python instance with %s" % str(args))

Expand Down

0 comments on commit 514b9c0

Please sign in to comment.