Writing log with python logging module in databricks to azure datalake not working(在数据库中使用Python日志记录模块将日志写入Azure数据记录不起作用)
本文介绍了在数据库中使用Python日志记录模块将日志写入Azure数据记录不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将我自己的日志文件写入到数据库中的Python-Notebook中的Azure Datalake Gen 2。我正试图通过使用Python日志记录模块来实现这一点。
不幸的是,我无法让它工作。不会引发错误,也不会创建文件夹,但不会创建包含日志记录内容的文件。即使文件存在,也不会写入任何内容。
本地Python脚本运行正常,但我无法使其在Databricks中运行。
以下是我的代码:
# mount
if not any(mount.mountPoint == '/mnt/log' for mount in dbutils.fs.mounts()):
dbutils.fs.mount(
source = "abfss://log@datalake.dfs.core.windows.net/",
mount_point = "/mnt/log",
extra_configs = configs)
# vars
folder_log = '/mnt/log/test/2019'
file_log = '201904.log'
# add folder if not existent
dbutils.fs.mkdirs(folder_log)
# setup logging
import logging
logging.basicConfig(
filename=folder_log+'/'+file_log,
format='%(asctime)s | %(name)s | %(levelname)s | %(message)s',
datefmt='%Y-%m-%d %H:%M:%S UTC (%z)',
level=logging.NOTSET
)
# test
logging.info('Hello World.')
安装似乎还可以。
使用dbutils添加和写入文件工作正常:
dbutils.fs.put(folder_log+'/'+file_log, 'Hello World.')
以这种方式写入文件也很正常:
f = open('/dbfs/mnt/log/test/2019/201904.log', 'w+')
f.write("This is line %d
")
f.close()
我还尝试将"dBFS"添加到路径
filename='/dbfs'+folder_log+'/'+file_log,
有什么想法吗?
推荐答案
您可以使用Azure_STORAGE_LOGGING处理程序:
import logging
from azure_storage_logging.handlers import BlobStorageRotatingFileHandler
log = logging.getLogger('service_logger')
azure_blob_handler = BlobStorageRotatingFileHandler(filename,
account_name,
account_key,
maxBytes,
container)
log.addHandler(azure_blob_handler)
这篇关于在数据库中使用Python日志记录模块将日志写入Azure数据记录不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在数据库中使用Python日志记录模块将日志写入A
基础教程推荐
猜你喜欢
- 如何将RPC与Volttron配合使用 2022-09-21
- 跟在带量词的前瞻后面有什么作用? 2022-09-22
- 获取多索引中某个级别的最后一个元素 2022-09-22
- 在OpenCV中放大后,Python会捕捉图像的特定部分 2022-09-22
- Python h5py-为什么我收到广播错误? 2022-09-21
- 如何在hdf5文件的多个组之间拆分数据? 2022-09-21
- 在 pandas 中使用带有多重索引的.loc 2022-09-22
- 从顶点坐标创建三角网格 2022-09-21
- 使用工作区API导入方法导入数据库笔记本(动态内 2022-09-21
- 如何防止Groupby超越指数? 2022-09-22