- 1 1. Kumpletong Gabay sa Pag-log sa Python | Mula sa Pag-debug Hanggang sa Produksyon
- 2 2. Ano ang pag-log sa Python? Mga batayang konsepto at kung bakit ito kailangan
- 3 3. Paano Simulan ang Pag-log gamit ang Built-in na logging Module ng Python
- 4 4. Paano maglabas ng mga log sa mga file at sa console sa Python
- 5 5. Mga Epektibong Teknik sa Pag-log sa mga Proyektong Python
- 6 6. Tatlong Inirerekomendang Librarya para Pahusayin ang Pag-log sa Python
- 7 7. Pagsagot sa mga Tanong Tungkol sa Python Logging!
- 8 8. Maging Eksperto sa Python logging upang mapabuti ang kahusayan sa pag-develop
1. Kumpletong Gabay sa Pag-log sa Python | Mula sa Pag-debug Hanggang sa Produksyon
Sa pag-develop ng mga programa sa Python, mahalaga ang pag-log para matukoy ang mga error at mapatunayan ang pag-uugali. Ipinaliwanag ng artikulong ito ang lahat mula sa mga batayang konsepto hanggang sa mga praktikal na teknik upang magamit ng mga baguhang Python ang pag-log nang epektibo.
2. Ano ang pag-log sa Python? Mga batayang konsepto at kung bakit ito kailangan
Ang pag-log ay isang mekanismo para irekord ang impormasyon at mga error na nangyayari habang tumatakbo ang isang programa. Ang tamang paggamit ng pag-log ay nagbibigay ng mga sumusunod na benepisyo:
Mga Benepisyo ng pag-log
- Mas madaling pagsusuri ng error Nakakatulong itong tukuyin kung saan naganap ang mga error at ang kanilang mga sanhi.
- Subaybayan ang pag-uugali ng programa Makikita mo kung aling bahagi ang tumatakbo nang tama at kung saan nagkakaroon ng mga isyu.
- Pahintulutan ang operational monitoring Nagbibigay ito ng pundasyon para sa patuloy na pagsubaybay sa kalusugan ng sistema sa produksyon.
Pagkakaiba sa print()
Ang function na print(), na karaniwang ginagamit ng mga baguhan, ay maginhawa para sa pag-debug ngunit may mga sumusunod na limitasyon para sa seryosong pag-develop:
- Hindi maaaring flexible na tukuyin ang destinasyon ng output (hal., mga file o external na serbisyo).
- Hindi maaaring pamahalaan ang mga antas ng log (antas ng kaseryosohan).
Maaaring maresolba ang mga isyung ito sa pamamagitan ng paggamit ng standard na logging module ng Python.

3. Paano Simulan ang Pag-log gamit ang Built-in na logging Module ng Python
Kasama sa Python ang built-in na logging module, na nagpapadali sa paglabas ng mga log. Ipinaliwanag ng seksyong ito ang pangunahing paggamit.
Pangkalahatang-ideya ng mga Antas ng Log
Pinapayagan ka ng logging module na magtakda ng isang “log level” upang ipahiwatig ang kaseryosohan ng mga mensahe ng log. Ang mga pangunahing antas ng log ay:
- DEBUG : Impormasyon para sa debugging. Kapaki-pakinabang sa panahon ng pag-develop.
- INFO : Mga mensaheng impormatibo. Nagpapakita ng progreso ng programa.
- WARNING : Mga babala. Nagpapahiwatig ng posibleng mga problema.
- ERROR : Mga error. Nagpapahiwatig kapag ang programa ay hindi gumagana nang tama.
- CRITICAL : Kritikal na mga error. Nagpapahiwatig ng pag-crash ng sistema.
Pangunahing Paggamit
Narito ang isang simpleng halimbawa ng pag-log gamit ang logging module.
import logging
# Basic logging configuration
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# Example output for each log level
logging.debug('This is debug information.')
logging.info('This is an info message.')
logging.warning('This is a warning message.')
logging.error('This is an error message.')
logging.critical('This is a critical error message.')
Paliwanag ng Code
basicConfig: Nagkokonpigura ng output ng log. Ang argument nalevelay nagpapahintulot na itakda ang pinakamababang antas ng log na ilalabas.- Pag-specify ng format : Ang argument na
formatay nagbibigay-daan upang i-customize ang format ng mga mensahe ng log. - Halimbawa:
%(asctime)say kumakatawan sa timestamp,%(levelname)sang antas ng log, at%(message)sang nilalaman ng mensahe.
4. Paano maglabas ng mga log sa mga file at sa console sa Python
Maaaring i-save ang mga log hindi lamang sa screen kundi pati na rin sa mga file o external na sistema. Ipinaliwanag ng seksyong ito kung paano i-configure ang iba’t ibang destinasyon ng output.
Pag-log sa console
logging Sa default, ang mga setting ng module ay naglalabas ng mga log sa console.
import logging
logging.basicConfig(level=logging.INFO)
logging.info('Example of logging to the console')
Pag-log sa isang file
Upang i-record ang mga log sa isang file, tukuyin ang argument na filename ng basicConfig.
import logging
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(message)s')
logging.info('This is an example of logging to a file.')
Pag-log sa parehong console at file
Kapag nagco-configure ng maraming destinasyon ng output, gamitin ang mga handler mula sa logging.
import logging
# Create a logger
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
# Console handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# File handler
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.INFO)
# Configure the handler format
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# Add handlers to the logger
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.info('Example log that will be output to both the console and the file.')

5. Mga Epektibong Teknik sa Pag-log sa mga Proyektong Python
Ipinapakita ng seksyong ito ang mga pinakamahusay na kasanayan sa pag-log na kapaki-pakinabang sa mga totoong proyekto. Matutunan ang mga teknik upang mag-debug nang epektibo at mapabuti ang pamamahala ng mga log.
Pare-parehong Konpigürasyon ng Pag-log
Sa mga malakihang proyekto, mahalaga ang pare-parehong konpigürasyon ng pag-log. Kapag maraming module o miyembro ng koponan ang nagsasama, ang pagtatakda ng iisang format at antas ng log ay nagpapadali sa pagsusuri at paglutas ng mga problema.
Narito ang isang halimbawa ng pare-parehong konpigürasyon ng pag-log.
import logging
# Common logging configuration function
def setup_logger(name, log_file, level=logging.INFO):
handler = logging.FileHandler(log_file)
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
# Create loggers for each module
app_logger = setup_logger('app_logger', 'app.log')
db_logger = setup_logger('db_logger', 'db.log')
# Example of log output
app_logger.info('Application log message')
db_logger.error('Database error message')
Pagsasama ng Pag-handle ng Error at Pag-log
Sa pag-handle ng error (exception handling), ang wastong pag-log ng impormasyon ay nagbibigay-daan upang mabilis mong maunawaan ang mga detalye ng mga isyu.
Narito ang isang halimbawa ng pag-log kapag naganap ang isang exception.
import logging
logging.basicConfig(filename='error.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')
try:
# Example code that raises an error
1 / 0
except ZeroDivisionError as e:
logging.error(f'A division-by-zero error occurred: {e}')
Pagsasama ng Impormasyon ng Konteksto sa mga Mensahe ng Log
Depende sa proyekto, ang pagsasama ng karagdagang impormasyon ng konteksto (hal., user ID, transaction ID) sa mga mensahe ng log ay nagbibigay-daan sa mas detalyadong pagsusuri.
import logging
logging.basicConfig(filename='context.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
user_id = 12345
transaction_id = 'txn_001'
logging.info(f'User ID: {user_id}, Transaction ID: {transaction_id} - Operation succeeded.')
Tamang Pag-filter ng Log
Kapag maraming log ang nalilikha, epektibo ang paggamit ng pag-filter upang ilabas lamang ang mga log na kailangan mo. Narito ang isang halimbawa ng pasadyang filter.
import logging
class DebugFilter(logging.Filter):
def filter(self, record):
return record.levelno == logging.DEBUG
logger = logging.getLogger('filtered_logger')
handler = logging.StreamHandler()
handler.addFilter(DebugFilter())
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.debug('This is a debug log.')
logger.info('This will not be displayed.')
6. Tatlong Inirerekomendang Librarya para Pahusayin ang Pag-log sa Python
Bilang karagdagan sa built-in na module na logging ng Python, may ilang kapaki-pakinabang na mga librarya sa pag-log. Itinatampok ng seksyong ito ang tatlong lalo na’t popular.
Loguru: Isang simpleng librarya sa pag-log para sa mga baguhan
Mga Tampok:
- Madaling i-install at i-setup.
- Mas intuitive na syntax kumpara sa standard na
logging.
Pag-install:
pip install loguru
Pangunahing paggamit:
from loguru import logger
logger.info('This is log output using Loguru.')
logger.error('Error messages can be logged easily, too.')
Logzero: Isang magaan, madaling-gamitin na library para sa pag-log
Mga Tampok:
- Madaling i-customize.
- May built-in na pag-ikot ng log.
Pag-install:
pip install logzero
Pangunahing paggamit:
from logzero import logger
logger.info('Log output using Logzero')
logger.warning('This is a warning message.')
Structlog: Isang library na dalubhasa sa structured logging
Mga Tampok:
- Madaling naglalabas ng mga log sa format na JSON.
- Angkop para sa mga distributed system at cloud environment.
Pag-install:
pip install structlog
Pangunahing paggamit:
import structlog
logger = structlog.get_logger()
logger.info('event', user='12345', action='login')

7. Pagsagot sa mga Tanong Tungkol sa Python Logging!
Q1. Bakit hindi lumalabas ang mga log?
Sagot:
Suriin na ang antas ng log ay nakatakda nang tama. Sa default, tanging mga log na nasa antas na WARNING o mas mataas pa ang maaaring ilabas.
Q2. Paano kung lumaki nang sobra ang log file?
Sagot:
Maaari mong gamitin ang RotatingFileHandler upang i-rotate ang mga log file kapag umabot na ito sa isang tiyak na laki.
Q3. Paano dapat pumili ng mga third-party na library?
Sagot:
Pumili batay sa laki at pangangailangan ng iyong proyekto. Para sa maliliit na proyekto, ang Loguru ay angkop; kung kailangan mo ng structured logging, mas mainam ang Structlog.
8. Maging Eksperto sa Python logging upang mapabuti ang kahusayan sa pag-develop
Tinatalakay ng artikulong ito ang lahat mula sa mga batayan ng pag-log sa Python hanggang sa mga advanced na teknik at kapaki-pakinabang na third-party na library. Ang wastong pag-log ay maaaring lubos na mapabuti ang kahusayan sa pag-debug at ang katumpakan ng pagmamanman ng sistema. Subukan mo na ngayon!


