服务器日志按日统计log文件

1、创建logback-spring.xml配置文件

文件内容为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <contextName>M2</contextName>
    
<!--     <springProfile name="dev"> -->
<!--         <property name="LOG_PATH" value="D:\\tsmlogs\\"/> -->
<!--     </springProfile> -->
<!--     <springProfile name="prod"> -->
<!--         <property name="LOG_PATH" value="/data/log/" /> -->
<!--     </springProfile> -->
    
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <encoder>
            <pattern>%date %-5level [%thread] [%c:%L] - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/log_s4tvip_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    
    <root>
        <appender-ref ref="console" />
        <appender-ref ref="file" />
    </root>
    
</configuration>

2、配置日志文件(application-logging.yml):

logging:
  path: D:\\tsmlogs\\
  level: 
    root: INFO
    org.springframework.boot: info
    org.springframework.boot.autoconfigure: 'OFF'
    java.sql.PreparedStatement: DEBUG
    java.sql.ResultSet: DEBUG
    com.panchan.m2: DEBUG
  filter: 
    contenttypes: 
    level: DEBUG
    encoding: UTF-8
    exceptingheaders: 
    ignorepaths: 
    urlpatterns: /*
    enabled: true

 

转载于:https://www.cnblogs.com/huyanlon/p/10905098.html

以下是使用Python从服务器日志文件统计每日登录人数的通用代码: ```python import re import pandas as pd from datetime import datetime, timedelta # 读取日志文件并解析出IP地址和时间 filename = 'your_log_file' pattern = r'\d+\.\d+\.\d+\.\d+.*\[(.*)\].*login.*' df = pd.read_csv(filename, sep='\n', header=None, names=['line']) df['ip'] = df['line'].str.extract(r'(\d+\.\d+\.\d+\.\d+)') df['time'] = df['line'].str.extract(pattern)[0].str[:11] df = df.dropna() # 统计每日登录人数 start = datetime.strptime(df['time'].min(), '%d/%b/%Y') end = datetime.strptime(df['time'].max(), '%d/%b/%Y') date_range = pd.date_range(start=start, end=end, freq='D') result = [] for date in date_range: mask = (df['time'].str.startswith(date.strftime('%d/%b/%Y'))) count = df.loc[mask]['ip'].nunique() result.append((date.date(), count)) # 输出结果 for date, count in result: print(f'{date}: {count} users') ``` 上述代码假设日志文件包含有关用户登录的信息,并且该信息包含了IP地址和时间。代码使用正则表达式从日志文件解析出IP地址和时间,并使用pandas库将其转换为DataFrame格式。然后,代码对时间进行日期提取和去重,并使用nunique()函数统计每个日期内唯一登录的IP地址数,即为每日登录人数。 在实际应用,需要根据日志文件的具体格式和内容进行调整和测试。同时,由于日志文件可能会很大,需要使用适当的方法来优化代码的效率和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值