mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-11-04 12:28:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
 Language: Apache Access Log
 | 
						|
 Author: Oleg Efimov <efimovov@gmail.com>
 | 
						|
 Description: Apache/Nginx Access Logs
 | 
						|
 Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog
 | 
						|
 */
 | 
						|
 | 
						|
export default function(hljs) {
 | 
						|
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
 | 
						|
  var HTTP_VERBS = [
 | 
						|
    "GET", "POST", "HEAD", "PUT", "DELETE", "CONNECT", "OPTIONS", "PATCH", "TRACE"
 | 
						|
  ]
 | 
						|
  return {
 | 
						|
    name: 'Apache Access Log',
 | 
						|
    contains: [
 | 
						|
      // IP
 | 
						|
      {
 | 
						|
        className: 'number',
 | 
						|
        begin: '^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b',
 | 
						|
        relevance:5
 | 
						|
      },
 | 
						|
      // Other numbers
 | 
						|
      {
 | 
						|
        className: 'number',
 | 
						|
        begin: '\\b\\d+\\b',
 | 
						|
        relevance: 0
 | 
						|
      },
 | 
						|
      // Requests
 | 
						|
      {
 | 
						|
        className: 'string',
 | 
						|
        begin: '"(' + HTTP_VERBS.join("|") + ')', end: '"',
 | 
						|
        keywords: HTTP_VERBS.join(" "),
 | 
						|
        illegal: '\\n',
 | 
						|
        relevance: 5,
 | 
						|
        contains: [{
 | 
						|
          begin: 'HTTP/[12]\\.\\d',
 | 
						|
          relevance:5
 | 
						|
        }]
 | 
						|
      },
 | 
						|
      // Dates
 | 
						|
      {
 | 
						|
        className: 'string',
 | 
						|
        // dates must have a certain length, this prevents matching
 | 
						|
        // simple array accesses a[123] and [] and other common patterns
 | 
						|
        // found in other languages
 | 
						|
        begin: /\[\d[^\]\n]{8,}\]/,
 | 
						|
        illegal: '\\n',
 | 
						|
        relevance: 1
 | 
						|
      },
 | 
						|
      {
 | 
						|
        className: 'string',
 | 
						|
        begin: /\[/, end: /\]/,
 | 
						|
        illegal: '\\n',
 | 
						|
        relevance: 0
 | 
						|
      },
 | 
						|
      // User agent / relevance boost
 | 
						|
      {
 | 
						|
        className: 'string',
 | 
						|
        begin: '"Mozilla/\\d\\.\\d \\\(', end: '"',
 | 
						|
        illegal: '\\n',
 | 
						|
        relevance: 3
 | 
						|
      },
 | 
						|
      // Strings
 | 
						|
      {
 | 
						|
        className: 'string',
 | 
						|
        begin: '"', end: '"',
 | 
						|
        illegal: '\\n',
 | 
						|
        relevance: 0
 | 
						|
      }
 | 
						|
    ]
 | 
						|
  };
 | 
						|
}
 |