以下の例のコードは、イベント・テーブルの VALUE 列に「Logging with attributes」というメッセージを記録する。また、 RECORD_ATTRIBUTES 列にカスタム属性を追加します。
CREATEORREPLACEPROCEDUREdo_logging_scala()RETURNSVARCHARLANGUAGESCALARUNTIME_VERSION='2.12'PACKAGES=('com.snowflake:telemetry:latest','com.snowflake:snowpark_2.12:latest')HANDLER='ScalaLoggingHandler.doThings'AS$$importorg.slf4j.Loggerimportorg.slf4j.LoggerFactoryimportcom.snowflake.snowpark.SessionclassScalaLoggingHandler{privatevallogger:Logger=LoggerFactory.getLogger(getClass)defdoThings(session:Session):String={logger.atInfo().addKeyValue("custom1","value1").setMessage("Logging with attributes").log();return"SUCCESS"}}$$;
CREATEORREPLACEPROCEDUREdo_logging_scala()RETURNSVARCHARLANGUAGESCALARUNTIME_VERSION='2.13'PACKAGES=('com.snowflake:telemetry:latest','com.snowflake:snowpark_2.13:latest')HANDLER='ScalaLoggingHandler.doThings'AS$$importorg.slf4j.Loggerimportorg.slf4j.LoggerFactoryimportcom.snowflake.snowpark.SessionclassScalaLoggingHandler{privatevallogger:Logger=LoggerFactory.getLogger(getClass)defdoThings(session:Session):String={logger.atInfo().addKeyValue("custom1","value1").setMessage("Logging with attributes").log();return"SUCCESS"}}$$;
CREATEORREPLACEPROCEDUREdo_logging()RETURNSVARCHARLANGUAGESCALARUNTIME_VERSION='2.12'PACKAGES=('com.snowflake:snowpark_2.12:latest','com.snowflake:telemetry:latest')HANDLER='ScalaLoggingHandler.doThings'AS$$importorg.slf4j.Loggerimportorg.slf4j.LoggerFactoryimportcom.snowflake.snowpark.SessionclassScalaLoggingHandler{privatevallogger:Logger=LoggerFactory.getLogger(getClass)logger.info("Logging from within the Scala constructor.")defdoThings(session:Session):String={logger.info("Logging from Scala method start.")try{throwException}catch{casee:Exception=>logger.error("Logging an error from Scala handler: "+e.getMessage())return"ERROR"}return"SUCCESS"}// Simulate a thrown exception to catch.@throws(classOf[Exception])privatedefthrowException={thrownewException("Something went wrong.")}}$$;
CREATEORREPLACEPROCEDUREdo_logging()RETURNSVARCHARLANGUAGESCALARUNTIME_VERSION='2.13'PACKAGES=('com.snowflake:snowpark_2.13:latest','com.snowflake:telemetry:latest')HANDLER='ScalaLoggingHandler.doThings'AS$$importorg.slf4j.Loggerimportorg.slf4j.LoggerFactoryimportcom.snowflake.snowpark.SessionclassScalaLoggingHandler{privatevallogger:Logger=LoggerFactory.getLogger(getClass)logger.info("Logging from within the Scala constructor.")defdoThings(session:Session):String={logger.info("Logging from Scala method start.")try{throwException}catch{casee:Exception=>logger.error("Logging an error from Scala handler: "+e.getMessage())return"ERROR"}return"SUCCESS"}// Simulate a thrown exception to catch.@throws(classOf[Exception])privatedefthrowException={thrownewException("Something went wrong.")}}$$;
---------------------------------------------------------------------------| SEVERITY | MESSAGE |---------------------------------------------------------------------------| "INFO" | "Logging from within the Scala constructor." |---------------------------------------------------------------------------| "INFO" | "Logging from Scala method start." |---------------------------------------------------------------------------| "ERROR" | "Logging an error from Scala handler: Something went wrong." |---------------------------------------------------------------------------