精华内容
下载资源
问答
  • Linux日志怎么创建

    千次阅读 2021-05-08 22:02:00
    Linux日志可以由用户创建,也可以由系统自动创建。Linux日志里记录着系统运行的状态和一些程序的重要参数。本文就来介绍一下Linux日志是怎么创建的。Linux 系统日志许多有价值的日志文件都是由 Linux 自动地为你创建...

    Linux日志可以由用户创建,也可以由系统自动创建。Linux日志里记录着系统运行的状态和一些程序的重要参数。本文就来介绍一下Linux日志是怎么创建的。

    de67c850ea15585228e6139d41500953.png

    Linux 系统日志

    许多有价值的日志文件都是由 Linux 自动地为你创建的。你可以在 /var/log 目录中找到它们。下面是在一个典型的 Ubuntu 系统中这个目录的样子:

    一些最为重要的 Linux 系统日志包括:

    1、/var/log/syslog 或 /var/log/messages 存储所有的全局系统活动数据,包括开机信息。基于 Debian 的系统如 Ubuntu 在 /var/log/syslog 中存储它们,而基于 RedHat 的系统如 RHEL 或 CentOS 则在 /var/log/messages 中存储它们。

    2、/var/log/auth.log 或 /var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在 /var/log/auth.log 中存储认证信息,而 RedHat 和 CentOS 则在 /var/log/secure 中存储该信息。

    3、/var/log/kern 存储内核的错误和警告数据,这对于排除与定制内核相关的故障尤为实用。

    4、/var/log/cron 存储有关 cron 作业的信息。使用这个数据来确保你的 cron 作业正成功地运行着。

    Digital Ocean 有一个关于这些文件的完整教程,介绍了 rsyslog 如何在常见的发行版本如 RedHat 和 CentOS 中创建它们。

    应用程序也会在这个目录中写入日志文件。例如像 Apache,Nginx,MySQL 等常见的服务器程序可以在这个目录中写入日志文件。其中一些日志文件由应用程序自己创建,其他的则通过 syslog (具体见下文)来创建。

    什么是 Syslog?

    Linux 系统日志文件是如何创建的呢?答案是通过 syslog 守护程序,它在 syslog 套接字 /dev/log 上监听日志信息,然后将它们写入适当的日志文件中。

    单词“syslog” 代表几个意思,并经常被用来简称如下的几个名称之一:

    1.Syslog 守护进程 — 一个用来接收、处理和发送 syslog 信息的程序。它可以远程发送 syslog 到一个集中式的服务器或写入到一个本地文件。常见的例子包括 rsyslogd 和 syslog-ng。在这种使用方式中,人们常说“发送到 syslog”。

    2.Syslog 协议 — 一个指定日志如何通过网络来传送的传输协议和一个针对 syslog 信息(具体见下文) 的数据格式的定义。它在 RFC-5424 中被正式定义。对于文本日志,标准的端口是 514,对于加密日志,端口是 6514。在这种使用方式中,人们常说“通过 syslog 传送”。

    3.Syslog 信息 — syslog 格式的日志信息或事件,它包括一个带有几个标准字段的消息头。在这种使用方式中,人们常说“发送 syslog”。

    Syslog 信息或事件包括一个带有几个标准字段的消息头,可以使分析和路由更方便。它们包括时间戳、应用程序的名称、在系统中信息来源的分类或位置、以及事件的优先级。

    下面展示的是一个包含 syslog 消息头的日志信息,它来自于控制着到该系统的远程登录的 sshd 守护进程,这个信息描述的是一次失败的登录尝试:

    1.《34》1 2003-10-11T22:14:15.003Z server1.com sshd - - pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.2.2

    展开全文
  • 在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4cpp,而在python中,我们需要第三方的日志组件,因为它已经为我们提供了简单易用、且功能强大的日志模块:logging。logging模块...

    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪。在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4cpp,而在python中,我们不需要第三方的日志组件,因为它已经为我们提供了简单易用、且功能强大的日志模块:logging。logging模块支持将日志信息保存到不同的目标域中,如:保存到日志文件中;以邮件的形式发送日志信息;以http get或post的方式提交日志到web服务器;以windows事件的形式记录等等。这些日志保存方式可以组合使用,每种方式可以设置自己的日志级别以及日志格式。日志模块的内容比较多,今天先学习logging模块的基本使用,下次具体学习日志的处理。

    先看一个比较简单的例子,让我们对logging模块有个感性的认识:

    importlogging

    logging.basicConfig(filename = os.path.join(os.getcwd(),'log.txt'), level = logging.DEBUG)

    logging.debug('this is a message')

    import logging logging.basicConfig(filename = os.path.join(os.getcwd(), 'log.txt'), level = logging.DEBUG) logging.debug('this is a message')

    运行上面例子的代码,将会在程序的根目录下创建一个log.txt文件,打开该文件,里面有一条日志记录:"DEBUG:root:this is a message"。

    4个主要的组件

    logger: 日志类,应用程序往往通过调用它提供的api来记录日志;

    handler: 对日志信息处理,可以将日志发送(保存)到不同的目标域中;

    filter: 对日志信息进行过滤;

    formatter:日志的格式化;

    日志级别

    在记录日志时, 日志消息都会关联一个级别("级别"本质上是一个非负整数)。系统默认提供了6个级别,它们分别是:

    级别

    对应的值

    CRITICAL

    50

    ERROR

    40

    WARNING

    30

    INFO

    20

    DEBUG

    10

    NOTSET

    0

    可以给日志对象(Logger Instance)设置日志级别,低于该级别的日志消息将会被忽略,也可以给Hanlder设置日志级别,对于低于该级别的日志消息, Handler也会忽略。

    logging模块中的常用函数:

    logging.basicConfig([**kwargs]):

    为日志模块配置基本信息。kwargs 支持如下几个关键字参数:

    filename :日志文件的保存路径。如果配置了些参数,将自动创建一个FileHandler作为Handler;

    filemode :日志文件的打开模式。 默认值为'a',表示日志消息以追加的形式添加到日志文件中。如果设为'w', 那么每次程序启动的时候都会创建一个新的日志文件;

    format :设置日志输出格式;

    datefmt :定义日期格式;

    level :设置日志的级别.对低于该级别的日志消息将被忽略;

    stream :设置特定的流用于初始化StreamHandler;

    下面是一个简单的例子:

    #coding=gbk

    importlogging

    logging.basicConfig(filename = os.path.join(os.getcwd(),'log.txt'), \

    level = logging.WARN, filemode ='w', format ='%(asctime)s - %(levelname)s: %(message)s')

    logging.debug('debug')#被忽略

    logging.info('info')#被忽略

    logging.warning('warn')

    logging.error('error')

    #----- 结果

    #2009-07-13 21:42:15,592 - WARNING: warn

    #2009-07-13 21:42:15,640 - ERROR: error

    #coding=gbk import logging logging.basicConfig(filename = os.path.join(os.getcwd(), 'log.txt'), \ level = logging.WARN, filemode = 'w', format = '%(asctime)s - %(levelname)s: %(message)s') logging.debug('debug')#被忽略 logging.info('info')#被忽略 logging.warning('warn') logging.error('error') #----- 结果 #2009-07-13 21:42:15,592 - WARNING: warn #2009-07-13 21:42:15,640 - ERROR: error

    logging.getLogger([name])

    创建Logger对象。日志记录的工作主要由Logger对象来完成。在调用getLogger时要提供Logger的名称(注:多次使用相同名称来调用getLogger,返回的是同一个对象的引用。),Logger实例之间有层次关系,这些关系通过Logger名称来体现,如:

    p = logging.getLogger("root")

    c1 = logging.getLogger("root.c1")

    c2 = logging.getLogger("root.c2")

    例子中,p是父logger, c1,c2分别是p的子logger。c1, c2将继承p的设置。如果省略了name参数, getLogger将返回日志对象层次关系中的根Logger。

    logging.setLoggerClass(klass)

    logging.getLoggerClass()

    获取/设置日志类型。用户可以自定义日志类来代替系统提供的logging.Logger类。

    logging.getLevelName(lvl)

    获取日志级别对应的名称。例如:

    printlogging.getLevelName(logging.NOTSET)

    printlogging.getLevelName(10)#logging.DEBUG

    printlogging.getLevelName(logging.DEBUG)

    printlogging.getLevelName(30)#logging.WARN

    printlogging.getLevelName(logging.ERROR)

    printlogging.getLevelName(50)#logging.CRITICAL

    print logging.getLevelName(logging.NOTSET) print logging.getLevelName(10) #logging.DEBUG print logging.getLevelName(logging.DEBUG) print logging.getLevelName(30) #logging.WARN print logging.getLevelName(logging.ERROR) print logging.getLevelName(50) #logging.CRITICAL

    logging.shutdown()

    当不再使用日志系统的时候,调用该方法,它会将日志flush到对应的目标域上。一般在系统退出的时候调用。

    Logger对象 通过调用logging.getLogger(name)来创建,它有如下常用的方法和属性:

    Logger.setLevel(lvl):

    设置日志的级别。对于低于该级别的日志消息将被忽略。下面一个例子演示setLevel方法:

    #coding=gbk

    import logging

    logging.basicConfig(filename = os.path.join(os.getcwd(),'log.txt'), level = logging.DEBUG)

    log = logging.getLogger('root.test')

    log.setLevel(logging.WARN)  #日志记录级别为WARNNING

    log.info('info')    #不会被记录

    log.debug('debug')  #不会被记录

    log.warning('warnning')

    log.error('error')

    #coding=gbk import logging logging.basicConfig(filename = os.path.join(os.getcwd(), 'log.txt'), level = logging.DEBUG) log = logging.getLogger('root.test') log.setLevel(logging.WARN) #日志记录级别为WARNNING log.info('info') #不会被记录 log.debug('debug') #不会被记录 log.warning('warnning') log.error('error')

    Logger.debug(msg [ ,*args [, **kwargs]])

    记录DEBUG级别的日志信息。参数msg是信息的格式,args与kwargs分别是格式参数。

    importlogging

    logging.basicConfig(filename = os.path.join(os.getcwd(),'log.txt'), level = logging.DEBUG)

    log = logging.getLogger('root')

    log.debug('%s, %s, %s', *('error','debug','info'))

    log.debug('%(module)s, %(info)s', {'module':'log','info':'error'})

    import logging logging.basicConfig(filename = os.path.join(os.getcwd(), 'log.txt'), level = logging.DEBUG) log = logging.getLogger('root') log.debug('%s, %s, %s', *('error', 'debug', 'info')) log.debug('%(module)s, %(info)s', {'module': 'log', 'info': 'error'})

    Logger.info(msg[ , *args[ , **kwargs] ] )

    Logger.warnning(msg[ , *args[ , **kwargs] ] )

    Logger.error(msg[ , *args[ , **kwargs] ] )

    Logger.critical(msg[ , *args[ , **kwargs] ] )

    记录相应级别的日志信息。参数的含义与Logger.debug一样。

    Logger.log(lvl, msg[ , *args[ , **kwargs] ] )

    记录日志,参数lvl用户设置日志信息的级别。参数msg, *args, **kwargs的含义与Logger.debug一样。

    Logger.exception(msg[, *args])

    以ERROR级别记录日志消息,异常跟踪信息将被自动添加到日志消息里。Logger.exception通过用在异常处理块中,如:

    importlogging

    logging.basicConfig(filename = os.path.join(os.getcwd(),'log.txt'), level = logging.DEBUG)

    log = logging.getLogger('root')

    try:

    raiseException,'this is a exception'

    except:

    log.exception('exception')#异常信息被自动添加到日志消息中

    import logging logging.basicConfig(filename = os.path.join(os.getcwd(), 'log.txt'), level = logging.DEBUG) log = logging.getLogger('root') try: raise Exception, 'this is a exception' except: log.exception('exception') #异常信息被自动添加到日志消息中

    Logger.addFilter(filt)

    Logger.removeFilter(filt)

    添加/移除日志消息过滤器。在讲述Filter时具体介绍。

    Logger.addHandler(hdlr)

    Logger.removeHandler(hdlr)

    添加/移除日志消息处理器。在讲述Handler时具体介绍。

    Logger.makeRecord(name, lvl, fn, lno, msg, args, exc_info[, func, extra])

    创建LogRecord对象。日志消息被实例为一个LogRecord对象,并在日志类内处理。

    展开全文
  • 我们平常用loguru都是只创一个日志文件 from loguru import logger logger.add('./jianpan_down.log', level='DEBUG', format='{time:YYYY-MM-DD HH:mm:ss} - {level} - {file} - {line} - {message}', ...

    我们平常用loguru都是只创一个日志文件

    from loguru import logger
    
    
    logger.add('./jianpan_down.log',
               level='DEBUG',
               format='{time:YYYY-MM-DD HH:mm:ss} - {level} - {file} - {line} - {message}',
               rotation="10 MB")
    
    logger.info('info')
    logger.error('error')

    但是我们一个项目里面想把日志文件分开处理

    from loguru import logger
    
    logger.add('普通日志.log', filter=lambda x: '[普通]' in x['message'])
    logger.add('警告日志.log', filter=lambda x: '[需要注意]' in x['message']) # 改
    logger.add('致命错误.log', filter=lambda x: '[致命]' in x['message']) # 改
    
    logger.info('[普通]我是一条普通日志')
    logger.warning('[需要注意]xx 写法在下个版本将会移除,请做好迁移')
    logger.error('[致命]系统启动失败!')

    filter来当过滤器,True的添加,False的话不添加

    展开全文
  • springboot日志文件,日志输出到文件

    千次阅读 2020-12-30 13:12:11
    日志文件的配置结构:(1)FILE_LOG_PATTERN:日志输出格式变量,在控制台输出和文件中输出的append中都引用了此变量。(2)consoleLog:定义一个控制台的appender(3)fileLog:定义一个日志文件的appender,这就是文件...

    日志文件的配置结构:

    (1)FILE_LOG_PATTERN:日志输出格式变量,在控制台输出和文件中输出的append中都引用了此变量。(2)consoleLog:定义一个控制台的appender(3)fileLog:定义一个日志文件的appender,这就是文件输出的详细配置,是日志文件的输出地址:必须要为${LOG_PATH}/${LOG_FILE},这样我们在application.properties中的配置才有效。level标签:如果我们设置了level为info,只会输出info的日志信息,其他日志级别的日志就会过滤掉,建议不配置level属性。

    (4)logger:其name就是项目中对应的包路径,appender-ref是appender的引用,在本配置文件中,意思就是com.example.xyx.MySpringBootTest包下文件的日志,按照fileLog的配置去输出,即按照FILE_LOG_PATTERN的格式,输出到D:/data/mylog/myLog.log文件中。

    标签level="debug"是设置日志级别:作用是debug级别及其以上级别的日志会输出(debug、info、warn、error,,,),注意此处的level是一个下线,比其日志级别高的日志信息也会输出,很重要。

    additivity="false"是配置此logger是否提交给其他的logger或者root节点,如果true,则root也会执行或者其他的可以拦截到的logger节点,且logger的level优先级高;否则不会执行,在本配置文件中即控制台不会输出com.example.xyx.MySpringBootTest包下文件的日志。

    (5)root:根节点,在logback-spring.xml中只引用了控制台日志输出配置,不会输出到文件,如果想输出到文件,可以写再写一个引用。level=info,在控制台输出into级别及其以上级别的日志。会拦截所有包下的日志,但是其输出会受到logger的影响,即注意logger中的additivity属性,如果为false,com.example.xyx.MySpringBootTest包下的日志不会输出到控制台。

    展开全文
  • 您是否收到过SOLIDWORKS的警告信息,即无法创建日志文件?...一种可能性最大的原因是SOLIDWORKS可能已经在后台打开了,SOLIDWORKS能一次性为多个活动会话创建日志文件。 接下来需要对此进行检查,请右键
  • 创建Topic的时候 什么时候在Broker磁盘上创建日志文件
  • crontab 里如何使用 date +’%Y%m%d’ 创建带日期的日志文件 需求 在crontab 执行定时任务时,将执行的任务输出到带日期的文件中 crontab中,执行脚本需要传入系统时间date +"%Y-%m-%d" 遇到的问题 今天遇到...
  • Oracle11g redo log创建、添加、删除(重做日志组,重做日志文件) 一、获取redo log信息 1、v$log视图常用信息查询: select group#, sequence#, members, bytes, status, archived from v$log; 或select * from v...
  • 新项目采用springboot2.3之后的自带打包方式打包成功后,启动发现目录文件里面没有日志生成 logs 文件路径下没有日志生成。 docker-compose.yaml 目录挂载如下: version: "3" services: dedupe: image: XXX ...
  • Job基本操作2.1 创建Job2.2 构建Job2.3 停止一个正在运行的Job2.4 激活Job状态为可以构建2.5 变更Job状态为可以构建2.6 删除Job3. 获取Job信息3.1 获取Job的初始配置参数3.2 获取Job任务状态3.3 获取Job控制台...
  • Tomcat错误日志控制台显示

    千次阅读 2020-12-19 19:47:27
    Hello,I'm Shendi ...通过查阅,发现高版本Tomcat默认是带控制台日志输出的 解决办法就是将默认日志输出替换为 log4j 官网文档,可进入官网自行查看 http://tomcat.apache.org/tomcat-7.0-doc/logging..
  • SQL创建表为啥显示

    热门讨论 2021-01-24 19:50:43
    这里新建表 左上角报存 保存完以后点击刷新就会出来创建的表格
  • 在main目录下创建resources文件夹 然后再resources文件夹里面创建 log4j.properties文件 添加以下内容 log4j.rootCategory=WARN, console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender...
  • Linux系统日志日志分析

    千次阅读 2021-05-13 15:41:21
    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/...
  • 查看日志

    千次阅读 2021-05-11 06:01:10
    ## 查看日当使用jenkins.war手动运行java -jar jenkins.war时,默认情况下,所有日志记录信息都输出为标准输出。许多Jenkins本机软件包都会修改此行为,以确保在平台的更常规位置输出日志记录信息。### Linux[]...
  • 6.1.6 日志压缩

    千次阅读 2021-04-21 22:10:07
    第二种做法因为在写操作时需要查询,所以写性能会很高。如表6-3所示,很多分布式存储系统都采用这种追加方式。这种方式的缺点是:需要通过后台的压缩操作保证相同键的多条记录,经过合并后只保留最新的一条记录。 ...
  • Java日志

    千次阅读 2021-02-12 17:02:39
    日志对于一个系统来说非常重要,查找异常信息、分析系统运行情况等都需要用到日志。所以无论是JDK还是第三方都提供了关于日志的相关工具,本文分别介绍以下几种工具,以及各种工具间的整合、原理。JDK的java.util....
  • 审计日志的实现

    千次阅读 2021-02-28 19:01:08
    切面的entity用来记录审计日志的内容.切面类用来实现记录升级日志的操作.这里还有一些辅助的类,比如枚举类,枚举出了所有的模块及名称.这些基本工作做好了以后,在需要使用审计日志的模块中,添加类似下面这样一段语句...
  • mysql日志文件

    千次阅读 2021-01-18 21:10:06
    日志文件类型MySQL有几个不同的日志文件,可以帮助你...赞成使用该日志。二进制日志记录所有更改数据的语句。还用于复制。慢日志记录所有执行时间超过long_query_time秒的所有查询或使用索引的查询。默认情况下...
  • Kettle运行日志记录

    千次阅读 2020-12-24 12:55:41
    LOG_TABLE=bi_etl_trans_log_table 来全局设置,记录kettle的job和trans日志, 记录日志,会进行锁表,在kettle作业非常多的情况下,容易造成表锁,以及队列等待job日志记录的情况严重影响效率。以及作业的调度。 在...
  • 日志服务保留时间

    千次阅读 2021-08-12 06:50:28
    日志服务保留时间 内容精选换一换执行一个MapReduce应用会产生两种类型日志文件:作业日志和任务日志。作业日志由MRApplicationMaster产生,详细记录了作业启动时间、运行时间,每个任务启动时间、运行时间、Counter...
  • ftp服务器日志解析

    千次阅读 2021-05-11 16:46:50
    FTP服务器日志解析FTP是老牌的文件传输协议,在网络中应用非常广泛。本节就Vsftp服务器的日志...默认情况下,Vsftp单独记录日志,也就是说不会输出到一个单独的文件中存储,而是统一存放到/var/log/messages文件中...
  • linux系统日志查看

    千次阅读 2021-05-12 08:48:26
    系统 日志文件( 可以通过cat 或tail 命令来查看)/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一/var/log/secure 与安全相关的日志信息/var/log/maillog 与邮件相关的日志信息/var...
  • k8s 部署智能化日志收集平台 EFK

    万次阅读 2021-11-13 13:59:03
    k8s 平台部署智能化日志收集平台采集 Pod 业务日志
  • 6.1.4 读取日志

    千次阅读 2021-04-21 17:27:52
    (1)日志分段新创建数据文件,文件和文件通道会用来创建一个文件消息集对象(原始文件消息 (2)每次读取日志分段,都会调用原始消息集的读取方法。 (3)原始消息集的每也读取方法,都会创建新的“文件消息集视图”。 (4...
  • 重启JVM动态添加日志(阿里Arthas)

    千次阅读 多人点赞 2021-01-28 00:26:29
    如果生产环境临时出现故障,但是现运行代码未打印定位问题所需要的日志,我们通常的做法是添加日志->重新发布->重现故障。但是这样麻烦说,最重要的是...所以我们希望找到一个重启应用,能够动态增加日志的方法。
  • Linux 系统日志许多有价值的日志文件都是由 Linux 自动地为你创建的。你可以在 /var/log 目录中找到它们。下面是在一个典型的 Ubuntu 系统中这个目录的样子:一些最为重要的 Linux 系统日志包括:/var/log/syslog 或...
  • log日志输出规范

    2021-03-11 14:12:00
    目录1、Log的用途2、记录Log日志的基础原则2.1、日志级别划分2.2、日志对性能的影响2.3、什么时候输出日志2.3.1、系统启动参数、环境变量2.3.2、异常捕获2.3.3、函数获得期望之外的结果时2.3.4、关键操作2.4 日志...
  • Java日志打印方法

    千次阅读 2021-02-12 09:29:48
    一、使用log4j打印日志1. 下载log4j.jar和commons-logging.jar。2.将准备好的两个jar包放到项目的lib包中(添加到项目的build path中)。方法:右键单击项目→选择“属性”→JavaBuild Path→Add External JARs。3.在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,171,799
精华内容 468,719
关键字:

日志创建不出来