FileLocator FileLocatorUtils(重要) 1.x和2.x定位一个文件的区别 FileLocatorAware FileLocationStrategy 1.x和2.x的文件扫描策略 FileHandler 本文将要讲述的是它的文件定位系统,其中最重要的两个API是FileLocator和FileHandler,需要引起关注。 FileHandler(final FileBased obj, final FileHandler c) { this(obj, checkSourceHandler(c).getFileLocator public static FileHandler fromMap(final Map<String, ? fileHandler = new FileHandler(config, FileHandler.fromMap(map)); ConfigurationUtils.dump(config
= FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 1catalina.org.apache.juli.FileHandler.prefix = tomcat. 2localhost.org.apache.juli.FileHandler.level = localhost. 2localhost.org.apache.juli.FileHandler.prefix = tomcat. 3manager.org.apache.juli.FileHandler.level = manager. 3manager.org.apache.juli.FileHandler.prefix = tomcat. 4host-manager.org.apache.juli.FileHandler.level handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler
, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler 日志前缀为catalina 1catalina.org.apache.juli.FileHandler.prefix = catalina. #配置文件使localhost日志输出级别为FINE 2localhost.org.apache.juli.FileHandler.level = FINE #localhost文件输出位置 2localhost.org.apache.juli.FileHandler.directory #配置文件使manager日志输出级别为FINE 3manager.org.apache.juli.FileHandler.level = FINE #manager文件输出位置 3manager.org.apache.juli.FileHandler.directory 4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
= FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 1catalina.org.apache.juli.FileHandler.encoding = UTF-8 2localhost.org.apache.juli.FileHandler.level = localhost. 2localhost.org.apache.juli.FileHandler.encoding = UTF-8 3manager.org.apache.juli.FileHandler.level = FINE 3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.FileHandler.prefix = manager. 3manager.org.apache.juli.FileHandler.encoding = UTF-8 4host-manager.org.apache.juli.FileHandler.level
() print 'readline() function:' #返回文件头,读取一行 filehandler.seek(0) print filehandler.readline () print 'readlines() function:' #返回文件头,返回所有行的列表 filehandler.seek(0) print filehandler.readlines () print 'list all lines' #返回文件头,显示所有行 filehandler.seek(0) textlist = filehandler.readlines (15) print 'tell() function' print filehandler.tell() #显示当前位置 print filehandler.read() filehandler.close() #关闭文件句柄
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler = WARNING 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 2localhost.org.apache.juli.FileHandler.level = FINE 2localhost.org.apache.juli.FileHandler.directory = FINE 3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.FileHandler.prefix = manager. 4host-manager.org.apache.juli.FileHandler.level = FINE 4host-manager.org.apache.juli.FileHandler.directory
fileHandler = new FileHandler("test. %g.log"); fileHandler.setLevel(Level.INFO); log.addHandler(fileHandler); fileHandler = new FileHandler("test. %g.log"); fileHandler.setLevel(Level.INFO); log.addHandler(fileHandler); fileHandler.setFormatter(new LogFormatter()); log.setLevel(Level.INFO); log.info
日志组件 private static void log2FileByAPI() throws SecurityException, IOException { // 将日志记录到文件中 FileHandler fileHandler = new FileHandler("D:/logs/java_util_log.log", true); Formatter formatter = new SimpleFormatter (); fileHandler.setFormatter(formatter); logger.addHandler(fileHandler); logger.info java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.FileHandler.level = INFO java.util.logging.FileHandler.append = true # Console Logging java.util.logging.ConsoleHandler.level
, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler 日志前缀为catalina 1catalina.org.apache.juli.FileHandler.prefix = catalina. #配置文件使localhost日志输出级别为FINE 2localhost.org.apache.juli.FileHandler.level = FINE #localhost文件输出位置 2localhost.org.apache.juli.FileHandler.directory #配置文件使manager日志输出级别为FINE 3manager.org.apache.juli.FileHandler.level = FINE #manager文件输出位置 3manager.org.apache.juli.FileHandler.directory 4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler .handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ###### = FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix 2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 2localhost.org.apache.juli.FileHandler.prefix 3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.FileHandler.prefix
初始版本:简单但不够严谨我们先来看看最简单的实现方式:class FileHandler: def read(self, filename): pass def write (self, filename, data): passclass JsonHandler(FileHandler): def read(self, filename): import json with open(filename, 'w') as f: json.dump(data, f)class CsvHandler(FileHandler 很多 Python 开发者会使用 NotImplementedError 来标记需要子类实现的方法:class FileHandler: def read(self, filename: str) ("test.txt") # 直到这里才会报错# 使用 ABC 的情况class BadHandler(FileHandler): # FileHandler 是 ABC passhandler
= %h/java%u.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 1 handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler = catalina. 2localhost.org.apache.juli.FileHandler.level = FINE 2localhost.org.apache.juli.FileHandler.directory = FINE 3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.FileHandler.prefix = manager. 4host-manager.org.apache.juli.FileHandler.level = FINE 4host-manager.org.apache.juli.FileHandler.directory
,StreamHandler主要是输出到控制台,FileHandler是输出到文件 StreamHandler使用 #! /usr/bin/python # -*- coding: utf-8 -*- import logging from logging import StreamHandler, FileHandler _fileHandler = logging.FileHandler(self._logName, mode='a', encoding="utf-8") self. _fileHandler.setFormatter(self._formatter) self._logger.addHandler(self. _fileHandler) # 获取logger日志记录器 def get_logger(self): return self.
关联的File private final FileHandler fileHandler; // 一般都是DEFAULT_REFRESH_DELAY 这个值 private final long ) { fileHandler = handler ! 此例不需要FileBased,所以先用null吧 FileHandler fileHandler = new FileHandler(null, FileHandler.fromMap(map) 此例不需要FileBased,所以先用null吧 FileHandler fileHandler = new FileHandler(null, FileHandler.fromMap(map) 此例不需要FileBased,所以先用null吧 FileHandler fileHandler = new FileHandler(null, FileHandler.fromMap(map)
php include("flag.php"); highlight_file(__FILE__); class FileHandler { protected $op; protected php class FileHandler { protected $op = 2; protected $filename ='flag.php'; //题目中包含flag 的文件 protected $content; } $bai = urlencode(serialize(new FileHandler)); //URL编码实例化后的类FileHandler序列化结果 ()); //实例化并序列化类FileHandler echo $baimao; //打印结果 ? -encode/resource=flag.php";s:10:" * content";N;} 删除乱码并减去相应长度 O:11:"FileHandler":3:{s:2:"op";i:2;s:8:"
java.util.logging.StreamHandler java.util.logging.ConsoleHandler java.util.logging.FileHandler fileHandler = new FileHandler("C:/testlog%g.log"); fileHandler.setLevel(Level.INFO ); log.addHandler(fileHandler); log.info("aaa"); fileHandler = new FileHandler("C:/testlog%g.log"); fileHandler.setLevel(Level.INFO ); fileHandler.setFormatter(new MyLogHander()); log.addHandler(fileHandler
php include("flag.php"); highlight_file(__FILE__); class FileHandler { protected $op; protected php class FileHandler { protected $op = 2; protected $filename ='flag.php'; //题目中包含flag 的文件 protected $content; } $bai = urlencode(serialize(new FileHandler)); //URL编码实例化后的类FileHandler序列化结果 ()); //实例化并序列化类FileHandler echo $baimao; //打印结果 ? -encode/resource=flag.php";s:10:" * content";N;} 删除乱码并减去相应长度 O:11:"FileHandler":3:{s:2:"op";i:2;s:8:"
container log file 在src/main/reousrces/ 下添加文件 logging.properties,内容如下: handlers = org.apache.juli.FileHandler configuration info for Handlers. ############################################################ org.apache.juli.FileHandler.level = FINE org.apache.juli.FileHandler.directory = .. /logs org.apache.juli.FileHandler.prefix = error-debug.
Python版本3.6 解决方法很简单,在定义Filehandler时指定encoding就好了 import logging file_hanlder = logging.FileHandler(filename ='example.log', encoding='utf-8') 因为看python的logging.FileHandler()类的代码如下,就知道Filehanlder也支持指定编码格式的了,原代码如下 : # logging\__init__.py class FileHandler(StreamHandler): """ A handler class which writes formatted
导入日志库:import logging 日志库的主要有以下方法: 获取日志名,比如 logging.getLogger(__name__) 定义Handler,比如 logging.FileHandler formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh = logging.FileHandler logging.getLogger(logger_name) formatter = logging.Formatter('%(asctime)s : %(message)s') fileHandler = logging.FileHandler(log_file, mode='w') fileHandler.setFormatter(formatter) #streamHandler #streamHandler.setFormatter(formatter) l.setLevel(level) l.addHandler(fileHandler