inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실리콘밸리 엔지니어와 함께하는 샐러리(Celery)

Task 에러를 Signal로 해결해 보기

celery의 로그 설정을 django의 settings.py에서 따로 해줘야 하는게 있을까요?

346

bluebamus

작성한 질문수 84

1

django의 logger를 사용해 log를 출력하는 경우

CELERYD_HIJACK_ROOT_LOGGER = False를 해줘야 하는지요?

celery의 동작과 관련한 모든 기본 출력을 django log에 함께 출력하는 방법이 있는지도 알고 싶습니다.

django celery django-celery django-celery-beat

답변 1

0

미쿡엔지니어

안녕하세요 bluebamus님,

저는 보통 Celery를 k8s에서 각각의 worker pod으로 사용하고, Splunk나 다른 Log fowarder를 사용해 왔었는데, 인터넷에 찾아보니, 이런 자료들이 있네요.

말씀하신대로 CELERYD_HIJACK_ROOT_LOGGER를 False로 설정하면 Celery가 기본 logger를 가져가서 사용하지 않습니다. 이를 통해 Django의 기본 로거 설정을 유지할 수 있습니다. 이 설정이 없으면 Celery가 root logger를 가로채서 Celery 자체의 로거로 사용하게 됩니다.

다음과 같이 사용하시면 될 듯 합니다.

# settings.py
CELERYD_HIJACK_ROOT_LOGGER = False

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'django_celery.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console', 'file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'celery': {
            'handlers': ['console', 'file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

# celery.py
import logging.config
from django.conf import settings

logging.config.dictConfig(settings.LOGGING)

app = Celery('your_project_name')

# your existing Celery settings

# Ensure the logging configuration is used by Celery
app.conf.update(
    worker_hijack_root_logger=False,
)

0

bluebamus

감사합니다. 덕분에 좋은 지식을 얻었습니다 ^^

진도미확인 (진도가 안 넘어감)

0

40

1

자료 화면 문의

0

40

1

celery.py 위치

0

96

2

docker-compose

0

112

1

standalone_celery 에만 작성된 task 들은 호출할 수 없나요?

0

136

2

수업노트 github 주소가 404가 많아요

0

92

1

product level에서 celeryd를 사용하시나요?

0

239

1

django에서 view나 api에서 request를 celery로 넘길 수 있을까요?

1

246

1

child process에 lock/좀비 프로세스가 발생하면 어떻게 처리되나요?

1

251

1

DLQ와 관련한 이전 질문의 추가 질문 입니다.

1

272

2

task 에러를 signal로 잡는 부분에 대해 질문 드립니다.

0

215

1

DLQ에 저장하는 패턴에 대해 질문 드립니다.

1

204

1

DLX에 대한 질문입니다.

1

153

1

기존 docker-compose는 admin의 깨져서 나옵니다.

1

206

2

실습에 문제가 많아 수업노트보기의 저장소 코드를 확인해봤습니다.

1

221

2

celery-standalone에 대한 질문입니다.

1

165

1

Celery Monitoring Tool, Flower에 대해 알아보기에 질문 있습니다.

1

529

3

group에서 keyword arg를 전송할 때에 대해 알고 싶습니다.

1

208

1

SNS 처럼 사용하기

1

177

1

셀러리 사용에 문의드립니다.

1

288

2

Task Routing 부분 보니까요

1

316

1

celery 에서 task 작업 끝난 후 ack 받기

1

373

2

rate_limit

0

320

2

docker-compose

2

450

2