Aşağıdaki kod var:Her zaman dictConfig kullanarak proje klasöründe günlük dosyası oluşturmak için YAML'de nasıl belirtilir? Benim Python programında
def main():
# The file's path
path = os.path.dirname(os.path.realpath(__file__))
...
# Config file relative to this file
loggingConf = open('{0}/configs/logging.yml'.format(path), 'r')
logging.config.dictConfig(yaml.load(loggingConf))
loggingConf.close()
logger = logging.getLogger(LOGGER)
...
ve bu benim logging.yml yapılandırma dosyasıdır:
version: 1
formatters:
default:
format: '%(asctime)s %(levelname)s %(name)s %(message)s'
handlers:
console:
class: logging.StreamHandler
level: DEBUG
formatter: default
stream: ext://sys.stdout
file:
class : logging.FileHandler
formatter: default
filename: bot.log
loggers:
cloaked_chatter:
level: DEBUG
handlers: [console, file]
propagate: no
sorun bot.log dosya oluşturulur ki programı başlatıldı. Her zaman projenin klasöründe, yani Python programımla aynı klasörde oluşturulmasını istiyorum. Örneğin, programı ./bot.py
ile başlatmak, günlük dosyasını aynı klasörde oluşturacaktır. Ancak, python3 path/bot.py
ile başlatıldığında, günlük dosyası, dosya hiyerarşisindeki Python programının üstünde bir düzey oluşturur.
Bunu çözmek için dosya dosyasında dosya adını nasıl yazmalıyım? Veya özel bir işleyici yazmam gerekiyor mu? Öyleyse nasıl? Veya bu dictConfig kullanarak çözmek mümkün değil mi?
Cevabınızı yorumunuza yanıt olarak güncelledim. –