Python logging模块介绍:
http://blog.chinaunix.net/uid-26000296-id-4372063.html

[root@fuel ~]# vi /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/db/sqlalchemy/models/node.py
     88
     89 class Node(Base):

304     @classmethod
    305     def delete_by_ids(cls, ids):
    306         db.query(Node).filter(Node.id.in_(ids)).delete('fetch')

38 from nailgun.logger import logger
可看出引用了:
/usr/lib/python2.6/site-packages/nailgun/logger.py中的logger变量。

[root@fuel ~]# vi /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.py
     17 import logging
     18 import sys

57 logger = make_nailgun_logger()

31 def make_nailgun_logger():
     32     """Make logger for nailgun app writes logs to stdout
     33     """
     34     logger = logging.getLogger("nailgun")
     35     logger.setLevel(logging.DEBUG)
     36     handler = logging.StreamHandler(sys.stdout)
     37     handler.setFormatter(formatter)
     38     logger.addHandler(handler)
     39     return logger
     40

28 formatter = logging.Formatter(LOGFORMAT, DATEFORMAT)

可见默认node.py将日志输出到标准输出,且最小日志输出级别是DEBUG级别。稍作改动,输出到日志文件中:
     36 #    handler = logging.StreamHandler(sys.stdout)
     37     handler = logging.FileHandler('/tmp/nailgun.log')

[root@fuel ~]# ls -l /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.py*
-rwxr-xr-x 1 root root 3936 Jan 27 10:44 /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.py
-rwxr-xr-x 2 root root 4509 Jun 19  2015 /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.pyc
-rwxr-xr-x 2 root root 4509 Jun 19  2015 /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.pyo

改完代码重启nailgun服务:
[root@fuel ~]# docker restart fuel-core-6.1-nailgun

验证日志已经生成:
[root@fuel ~]# ls -l /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/tmp/nailgun.log

[root@fuel ~]# ls -l /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.py*
-rwxr-xr-x 1 root root 3936 Jan 27 10:44 /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.py
-rw-r--r-- 1 root root 4509 Jan 27 10:49 /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.pyc
-rwxr-xr-x 1 root root 4509 Jun 19  2015 /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/logger.pyo

制作符号链接:
[root@fuel ~]# ln -s /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/tmp/nailgun.log /root/nailgun.log

修改node.py源代码:
[root@fuel ~]# vi /var/lib/docker/devicemapper/mnt/4da57a0078c9d3f32e819373b67de41da37c34a27ee03f74016427e0223df5f2/rootfs/usr/lib/python2.6/site-packages/nailgun/db/sqlalchemy/models/node.py
     89 class Node(Base):
     90     logger.logger.warning("____ffff____")

改完代码重启nailgun服务:
[root@fuel ~]# docker restart fuel-core-6.1-nailgun

验证代码被调用:
[root@fuel ~]# grep '____ffff____' nailgun.log
清空日志:
[root@fuel ~]# echo ''>nailgun.log
[root@fuel ~]# cat nailgun.log

[root@fuel ~]# fuel node
DEPRECATION WARNING: /etc/fuel/client/config.yaml exists and will be used as the source for settings. This behavior is deprecated. Please specify the path to your custom settings file in the FUELCLIENT_CUSTOM_SETTINGS environment variable.
id | status       | name  | cluster | ip           | mac               | roles                     | pending_roles | online | group_id
---|--------------|-------|---------|--------------|-------------------|---------------------------|---------------|--------|---------
10 | provisioning | RD530 | 1       | 168.5.21.106 | a0:36:9f:8d:40:88 | compute                   |               | True   | 1
2  | ready        | UCS2  | 1       | 168.5.21.101 | 00:25:b5:00:00:21 | cinder, controller, mongo |               | True   | 1
4  | ready        | R720  | 1       | 168.5.21.103 | c8:1f:66:d0:33:83 | compute                   |               | True   | 1
1  | ready        | UCS1  | 1       | 168.5.21.100 | 00:25:b5:00:00:11 | cinder, controller, mongo |               | True   | 1
3  | ready        | R420  | 1       | 168.5.21.102 | 00:1b:78:5a:9e:46 | cinder, controller, mongo |               | True   | 1
[root@fuel ~]# cat nailgun.log

[root@fuel ~]#
说明“fuel node”命令没调用到node.py。

修改Python文件日志输出位置的更多相关文章

  1. python logging日志输出个文件中

    # -*- coding:utf-8 -*- import logging # 引入logging模块 import os.path import time # 第一步,创建一个logger logg ...

  2. Python模块:日志输出—logging模块

    1. logging介绍 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/ ...

  3. oracle修改闪回日志的位置

    改变闪回日志位置的步骤: A.Change the value of the DB_RECOVERY_FILE_DEST initialization parameter to a new value ...

  4. Eclipse设置控制台日志输出位置

    1.选择服务器配置 2.设置输出文件路径

  5. IDEA指定.class文件输出位置

    1.File > Project Structure > Project > Project compiler output  项目中的默认编译输出总目录 2.我习惯于把.class ...

  6. log4j日志输出到web项目指定文件夹

    感谢 eric2500 的这篇文章:http://www.cxyclub.cn/n/27860/ 摘要:尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终在eric2500的指导 ...

  7. Python之日志处理(logging模块)

    本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日 ...

  8. 【转】Python之日志处理(logging模块)

    [转]Python之日志处理(logging模块) 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging ...

  9. Python logging(日志)模块

    python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...

随机推荐

  1. Chapter 2 Open Book——13

    "People in this town," he muttered. "Dr. Cullen is a brilliant surgeon who could prob ...

  2. 关于Unicode字符集

    最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符.显然,这样要表示各种语言中所有的字符是远远不够的.Unicode4.0规范考虑到了这种情况 ...

  3. LeetCode OJ 292.Nim Game

    You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...

  4. find the closest sum to a target value

    problem: given an array of integers including positive and negative, a target value. find 2 numbers ...

  5. 被非技术瓶颈阻挡了,没钱买Mac,挣扎ing

    最近一直没来写博客,因为一直在找刷盘子.服务生.看店的工. 已经找到,主要因为前阵子天不热,所以酒馆的顾客不多.现在好了. 只好买个Mac mini,看了很多帖子,也只好暂时折中这样了.Mac买不起. ...

  6. PHP处理密码的几种方式【转载】

    转自:http://www.3lian.com/edu/2015/08-01/235322.html 在使用PHP开发Web应用的中,很多的应用都会要求用户注册,而注册的时候就需要我们对用户的信息进行 ...

  7. nginx 中文文件名显示问题

    VPS论坛里已经说过设置方法,不过貌似很多人还是会遇到中文乱码的问题,Apache可以使用mod_encoding支持中文目录和文件,LNMP下Nginx其实不需要安装额外的组件即可支持中文文件名或中 ...

  8. html 页面视图中的资源文件(css/js/image)的路径问题。

    说到html 页面视图中的资源文件的路径引用问题,这个问题以前一直没去弄明白.今天,我将公司新开发的一个项目完全移植到我本地搭建的php 环境中来,遇到了这个问题,想了一下,然后也不是很困难的就把它给 ...

  9. EL(表达式语言)

    EL(Expression Language):目的是为了简化Jsp页面的语言,使页面看起来更加简洁 基本的语法特点 以“${"开头,以”}“结束 一 与低版本的环境兼容----禁用EL ( ...

  10. php 生成二维码 代码示例

    logo   是正方形  或者  圆形的   居多        <?php include ('phpqrcode.php'); $value = 'http://www.codesc.net ...