小编Moe*_*ars的帖子

log4j2为FileAppender指定tomcat home目录的相对路径

我正在尝试为我的本地运行的tomcat服务器配置log4j2.我无法将日志传递到与tomcat安装相关的位置.

如果我指定一个绝对路径它的工作原理.如果我使用相对路径,它输出到的位置System.getProperty("user.dir").

但是,当我尝试使用它${catalina.home}${catalina.base}它不起作用.如果我在启动时输出这两个系统属性,则会定义它们并指向正确的位置.

也,

  • Tomcat 7.0.26
  • servlet 2.5
  • log4j2.0 beta 8
  • 我们正在使用slf4j和log4j2.
  • 我通过环境变量设置所有记录器是异步的-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector.

我的感觉是Tomcat在处理log4j2.xml时可能没有完全初始化?任何想法将不胜感激!

这是我的log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="debug" name="LoggingConfig"> 
  <appenders>
    <FastFile name="ALog" fileName="${catalina.home}/logs/test.log" immediateFlush="true" append="true">
      <PatternLayout>
        <pattern>%d %p %c{1.} [%t] %m%n</pattern>
      </PatternLayout>
    </FastFile>
  </appenders>

  <loggers>
    <logger name="a.namespace.dir" level="info" additivity="false">
      <appender-ref ref="ALog"/>
    </logger>

    <root level="info">
      <appender-ref ref="ALog"/>
    </root>
  </loggers>

</configuration>
Run Code Online (Sandbox Code Playgroud)

来自catalina.out

2013-07-31 11:22:00,313 DEBUG Calling createAppender on class org.apache.logging.log4j.core.appender.FastFileAppender for element FastFile with params(fileName="${catalina.home}/logs/test.log", append="true", name="ALog", immediateFlush="true", suppressExceptions="null", PatternLayout(%d …
Run Code Online (Sandbox Code Playgroud)

logging tomcat fileappender log4j2

44
推荐指数
1
解决办法
3万
查看次数

iOS9 Swift文件使用NSURL创建NSFileManager.createDirectoryAtPath

在iOS9之前,我们创建了一个类似的目录

let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
let logsPath = documentsPath.stringByAppendingPathComponent("logs")
let errorPointer = NSErrorPointer()
NSFileManager.defaultManager().createDirectoryAtPath(logsPath, withIntermediateDirectories: true, attributes: nil, error: errorPointer)
Run Code Online (Sandbox Code Playgroud)

但是对于iOS9,他们删除了String.stringByAppendingPathComponent.自动转换工具取代了我们对NSURL使用String.createDirectoryAtPath()接受一个字符串,所以我需要将NSURL转换为字符串.我们像这样使用absolutePath :(更新为iOS9)

let documentsPath = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0])
let logsPath = documentsPath.URLByAppendingPathComponent("logs")
do {
    try NSFileManager.defaultManager().createDirectoryAtPath(logsPath.absoluteString, withIntermediateDirectories: true, attributes: nil)
} catch let error as NSError {
    NSLog("Unable to create directory \(error.debugDescription)")
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

无法创建目录错误Domain = NSCocoaErrorDomain Code = 513"您无权将文件"logs"保存在"Documents"文件夹中." UserInfo = {NSFilePath = file:/// var/mobile/Containers/Data/Application/F2EF2D4F-94AF-4BF2-AF9E-D0ECBC8637E7/Documents/logs /,NSUnderlyingError = 0x15664d070 {Error Domain = NSPOSIXErrorDomain Code = …

nsfilemanager swift ios9

30
推荐指数
2
解决办法
2万
查看次数

Amazon ElasticCache自动发现 - 客户端未初始化

我正在尝试使用AutoDiscovery测试亚马逊的新Memcached客户端.我有一个memcached节点,我可以使用XMemcached 1.3.5以及标准的SpyMemcached库连接到该节点.

我按照这里的说明操作:http://docs.amazonwebservices.com/AmazonElastiCache/latest/UserGuide/AutoDiscovery.html

代码几乎与示例相同,并且是:

String configEndpoint = "<server name>.rgcl8z.cfg.use1.cache.amazonaws.com";
Integer clusterPort = 11211;
MemcachedClient client = new MemcachedClient(new InetSocketAddress(configEndpoint, clusterPort));
client.set("theKey", 3600, "This is the data value");
Run Code Online (Sandbox Code Playgroud)

我在创建连接时在日志中看到以下内容.我尝试设置值时发生错误:

2013-01-04 22:05:30.445 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/<ip>:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2013-01-04 22:05:32.861 INFO net.spy.memcached.ConfigurationPoller:  Starting configuration poller.
2013-01-04 22:05:32.861 INFO net.spy.memcached.ConfigurationPoller:  Endpoint to use for configuration access in this poll NodeEndPoint - HostName:<our-server>.rgcl8z.cfg.use1.cache.amazonaws.com IpAddress:<ip> Port:11211
2013-01-04 22:05:32.950 WARN net.spy.memcached.MemcachedClient:  Configuration endpoint timed …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services spymemcached amazon-elasticache

6
推荐指数
1
解决办法
4968
查看次数